[解決済み] double 型から BigDecimal 型への変換と BigDecimal 型の精度の設定
2023-04-22 03:12:31
質問
Javaで、doubleの値を、(2)のように
BigDecimal
に変換し、そのString値をある精度で出力したい。
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
double d=-.00012;
System.out.println(d+""); //This prints -1.2E-4
double c=47.48000;
BigDecimal b = new BigDecimal(c);
System.out.println(b.toString());
//This prints 47.47999999999999687361196265555918216705322265625
}
}
こんな巨大なものが印刷されます。
47.47999999999999687361196265555918216705322265625
でなく
<ブロッククオート47.48
をやっている理由は
BigDecimal
に変換しているのは、double 値が多くの小数点以下の桁数を含むことがあるからです (すなわち
-.000012
のように)、double 型の値を String 型に変換すると、科学的記数法になります。
-1.2E-4
. Stringの値を非科学的記法で格納したい。
BigDecimalに"47.48"のように常に2単位の精度を持たせたいのです。 BigDecimalは文字列に変換する際に精度を制限することができますか?
どのように解決すればよいですか。
47.48000と表示されます。 MathContext :
BigDecimal b = new BigDecimal(d, MathContext.DECIMAL64);
必要なコンテキストを選ぶだけ。
関連
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
[解決済み] Double vs. BigDecimal?
-
アノテーション「@Retention」の役割
-
Zipファイルの圧縮・解凍にantを使用する
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
最新
-
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は、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
セミコロン期待値エラー解決
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
switch case文のcaseの後の列挙定数は列挙型なし