java - 乘以 DecimalFormat 数字(不再正确舍入)

标签 java numbers decimal decimalformat

我基本上尝试使用 DecimalFormat 来获取小数点后两位。我采用两个整数值,然后将它们相除并转换为我在下面放入示例值的 double 值。当我执行以下操作时,我得到的值不再是小数点后两位。似乎当乘以 3 时,它会失去四舍五入。

DecimalFormat df = new DecimalFormat("#.00");
double d = Double.parseDouble(df.format((double)5/6))*3;
System.out.println(d);

您能告诉我为什么会发生这种情况以及如何解决这个问题吗?

最佳答案

在声明中:

double d = Double.parseDouble(df.format((double)5/6))*3;

不保留格式(Double 返回 double )。

你可以这样做,例如:

System.out.println(df.format(d));

关于java - 乘以 DecimalFormat 数字(不再正确舍入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865176/

相关文章:

Java MIDI - 从钢琴获取数据?

javascript - 如何在 JavaScript 中将整数转换为二进制?

python - 对于循环重复/卡住? Python 3.2

c# - 保存时未验证 Entity Framework HasPrecision

c# - C# 中的英尺到米转换器坏了?

php - Eloquent 将小数转换为字符串

java - 附加到 textview 的 "Swipe Detection"出现故障

JavaFX 如何在一个注册表中组合多个事件处理程序?

java - 聚合/存储字段和异步作业

ios - iOS中的随机数?