可能重复:
浮点不准确示例
在 java 中使用模运算符时,我没有得到我期望得到的数字。
这是我在做什么:
double input = 5.59;
System.out.println("Output: " + (input % 2));
我希望看到 1.59 作为结果,但它打印出 1.5899999999999999。关于为什么会这样的任何线索?
这来自浮点不准确性,这是一个很好的 SO 答案,准确地解释了正在发生的事情。
如果您希望它四舍五入您需要使用如下格式的数字:
double input = 5.59;
System.out.format("Output: %.2f%n", (input % 2));
希望这可以帮助!
这是因为 Double 的精度。您需要对其进行格式化以实现所需的输出。
double input = 5.59;
System.out.println("Output: " + new DecimalFormat("00.00").format(input % 2));
它将打印输出:1.59