[解決済み] BigDecimalを小数点以下2桁までの文字列としてフォーマットし、小数点以下は0を削除する。
2023-06-10 02:46:06
質問
BigDecimalの数値がありますが、小数点以下2桁までしか考慮されていないので、以下の方法で切り捨てています。
bd = bd.setScale(2, BigDecimal.ROUND_DOWN)
今度はStringで表示したいのですが、例えば0であれば小数点以下の部分を削除して表示します。
1.00 -> 1
1.50 -> 1.5
1.99 -> 1.99
Formatter.formatを使ってみましたが、いつも小数点以下2桁になってしまいます。
どうすればいいのでしょうか?bd.toPlainString()から文字列を操作するのが良いでしょうか?
どのように解決するのですか?
私は
DecimalFormat
の書式設定に
BigDecimal
をフォーマットする代わりに
String
で問題ないようです。
コードはこのようなものです。
bd = bd.setScale(2, BigDecimal.ROUND_DOWN);
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(0);
df.setGroupingUsed(false);
String result = df.format(bd);
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
セミコロン期待値エラー解決
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
Java の double データ型における 0.0 と -0.0 の問題
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ