【发布时间】:2020-10-01 18:55:51
【问题描述】:
我有一个双人间。 double foo = 123456789.1234;。我想把foo 变成一个字符串。 String str = foo+"";。但现在foo 等于“1.234567891234E8”。有没有办法可以在没有科学记数法的情况下将foo 转换为字符串?
我试过了
String str = String.format("%.0f", foo);
但这只是删除了小数。它将str 设置为“123456789”;
我试过了
String str = (new BigDecimal(foo))+"";
但这会失去准确性。其将str 设置为“123456789.1234000027179718017578125”;
【问题讨论】:
-
仅供参考,
BigDecimal方法不会丢失准确性 - 它准确地描述了存储在double中的 实际 值。
标签: java string formatting double bigdecimal