問題があります。私のJSPページには、金銭的価値を受け入れるテキストフィールドがあります。 66777764
のような値を入力すると、検証エラーが発生したときはいつでも自分のテキストフィールドに6.6777764E7
になります。私はこれがデータベースに保存された値に影響しないことを知っていますが、私はその誤解を招く/ユーザーに混乱すると思います。助けてください。前もって感謝します。Javaが2倍の指数形式に変換する理由
答えて
double
のように数字をそのまま残しているようです。66777764
は実際には66.777764.0
です。表示されているものが表示されます。
次の例のように、あなたが望むように番号の表示をフォーマットするDecimalFormatを使用することができます。
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d)); // will print 1.23
これがために多くのオプションがありますが、ポイントの後に2桁(66777764.00
)と番号が表示されます形式については、ドキュメントの情報を確認してください。
です。BigDecimalの回答はまだ通貨に関する推奨事項です。 –
通貨部分についてはあなたが正しいです –
BigDecimalを使用して金銭的価値を維持します。
double d = 66777764d;
BigDecimal bd = new BigDecimal(d);
System.out.println(bd);
the answer of this questionを読み、BigDecimalを使用する理由を確認してください。
そして私はしたいですadd:決して浮動小数点数を使用することはありません。すなわち、Javaで倍精度浮動小数点数を使用して金銭的価値を保持することは決してありません。 – jmg
は、それはすべてあなたが `double`をフォーマットしているどのようにだBigDecimal
BigDecimal bd = new BigDecimal(inputVal);
System.out.println(bd);
- 1. Javascriptで非指数/短い形式の倍数を変換/表現する
- 2. Javaの指数形式から小数への変換
- 3. Java形式の2倍の金額として
- 4. 12時間形式で2倍の変数を比較する方法
- 5. 日付形式のJavaでの変換?
- 6. SubjectPublicKeyInfo形式の公開鍵をRSAPublicKey形式に変換するjava
- 7. タブファイルのデータをCSV形式に変換するか、Javaを使用して形式を変換する
- 8. ビジュアルスタジオで64ビットの倍精度をバイト配列形式の80ビット倍精度に変換する
- 9. 数値昇格時にJavaがバイトオペランドとショートオペランドをintに変換する理由
- 10. 日付形式を別の形式に変換する方法
- 11. PHPのMYSQL DATE形式をSTRING形式に変換する
- 12. NSDataをplist形式でJavaの文字列に変換する
- 13. MetaStock形式をCSV形式に変換するには?
- 14. 匿名型でシリアライズ(JavaScriptSerializer)が2倍かかる理由
- 15. 変換データテーブル形式
- 16. java、WindowsパスをDOS 8.3形式に変換する
- 17. HHMM文字列をJavaでGMT形式に変換する
- 18. htmlをms_word形式に変換する
- 19. docをpdf形式に変換する#
- 20. PDFをTIFF形式に変換する
- 21. DateTimeをUK形式に変換する
- 22. floatをIEEE形式に変換する
- 23. データをJSON形式に変換する
- 24. pfx形式をp12に変換する
- 25. tiffをjpg形式に変換する
- 26. Javaで2つの倍を排他的に処理する
- 27. WSDLファイルの形式を変換する(Java?)
- 28. プロジェクトの外のファイルのために、ファイルをIFile形式のjava形式に変換するには?
- 29. sql datetime形式の変換
- 30. DateTime形式の変換
に従ってください。 「[java形式double](https://www.google.com/search?q=java+format+double)」を検索すると、豊富な情報が得られます。また、** double **(または他の浮動小数点を金額に使用しないでください。 –
ペーストコードは –