【发布时间】:2017-03-12 20:52:15
【问题描述】:
我想在 Java 中格式化具有一定小数位数的双精度数。我的代码目前如下所示:
final NumberFormat format = NumberFormat.getInstance();
format.setMinimumFractionDigits(decimalPlaces);
format.setMaximumFractionDigits(decimalPlaces);
format.setGroupingUsed(false);
String s = format.format(value);
但是当decimalPlaces 超过 340 时,这个方法只打印 340 位而忽略其余的。有没有办法解决这个限制?
特别是在我的情况下,它们都是 0(并且在某个点之后可能会是任何数字,因为精度不是那么高)但对我来说,函数只是默默地忽略我想要的而不是抛出,这似乎是错误的一个例外什么的。
是的,我知道 double 实际上不能保存那么多小数位,但 int 根本不能保存任何小数位也是事实,但我可以用一些打印它。
【问题讨论】:
-
你能包括你对“decimalPlaces”的价值是什么
-
这是一个作业。我们必须制作一个简单的命令行计算器,在其中一个测试中有一个 0 结果,必须打印 500 个小数位(全为零)。这种方法在 340 处将它们切断,甚至没有显示任何错误。
-
我很确定我们不应该制作自己的打印功能。
标签: java