Java模算子
可能重复:Java模算子,java,modulo,Java,Modulo,可能重复: 在java中使用模运算符时,我没有得到期望得到的数字 以下是我正在做的: double input = 5.59; System.out.println("Output: " + (input % 2)); 我希望看到1.59作为结果,但它打印出1.5899999999。有什么线索可以解释为什么会这样吗?这是因为浮点不准确 如果要将数字四舍五入,需要使用如下格式: double input = 5.59; System.out.format("Output: %.2f%n", (
在java中使用模运算符时,我没有得到期望得到的数字 以下是我正在做的:
double input = 5.59;
System.out.println("Output: " + (input % 2));
我希望看到1.59作为结果,但它打印出1.5899999999。有什么线索可以解释为什么会这样吗?这是因为浮点不准确 如果要将数字四舍五入,需要使用如下格式:
double input = 5.59;
System.out.format("Output: %.2f%n", (input % 2));
- “%”告诉格式化程序用第一个数值参数替换自身。您可以添加任意数量的这些
- “.2”告诉格式化程序将数字格式化为小数点后两位
- “f”只是告诉格式化程序它是一个浮点数李>
- “%n”是适用于运行应用程序的平台的新行字符。您应该始终使用“%n”,而不是“\n”
希望这有帮助 这是因为双精度。您需要对其进行格式化以实现所需的输出
double input = 5.59;
System.out.println("Output: " + new DecimalFormat("00.00").format(input % 2));
它将打印输出:1.59这是因为浮点不准确,好的,这是一个多重复制(IEEE754,浮点等)。让我们花点时间找到它……谢谢@josiahester,我会仔细阅读的。你知道我能解决这个问题的方法吗。我需要它为我的11年级编程课做一个改变计划。另一个类似的问题:在编辑后提供的答案可能会帮助你+1来描述。谢谢soo Morge:P我试着让这个工作了一段时间。