如何将double值四舍五入到2个小数点?


问题内容

我想将双精度值四舍五入到2个小数点。

例如:我有双d = 2;结果应为result = 2.00


问题答案:

内部表示形式在2和2.00之间没有差异。您可以使用Math.round四舍五入的值到最接近的整数-
使该轮为2位小数,你可以乘100,圆形,再除以100,但你不应该期望的结果是 准确 2DPS,由于二进制浮点运算的性质。

如果您只想将值 格式化
为两位小数,请查看DecimalFormat-如果您对
计算中
的小数位数感兴趣,那么您实际上应该使用BigDecimal。这样,您将知道自己实际上是在处理十进制数字,而不是“最接近的可用double值”。

如果您 始终要 处理两个小数位,您可能要考虑的另一种选择是将值存储为a
longBigInteger,知道它正好是“实际”值的100倍-例如,有效地存储美分而不是美元。