Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java-计算数学楼层_Java - Fatal编程技术网

java-计算数学楼层

java-计算数学楼层,java,Java,您好,我刚遇到一些遗留代码,我是否找到了一个Math.floor()calculation 比如数学地板(值)*100/100。我只是想弄明白为什么他们会有100/100,因为无论有没有乘法和除法,我都会得到相同的结果 有没有关于他们为什么要这样计算的建议? 在什么情况下,这种计算会对我有帮助 public class DoubleTest { public static void main(String[] args) { double val = 6.939045873958734

您好,我刚遇到一些遗留代码,我是否找到了一个
Math.floor()
calculation 比如
数学地板(值)*100/100
。我只是想弄明白为什么他们会有100/100,因为无论有没有乘法和除法,我都会得到相同的结果

有没有关于他们为什么要这样计算的建议? 在什么情况下,这种计算会对我有帮助

public class DoubleTest {
 public static void main(String[] args) {
    double val = 6.93904587395873495873493453453453454587349458734985739487857;
    System.out.println(Math.floor(val)*100/100);
    System.out.println(Math.floor(val));
 }
}
输出

6.0
6.0

我猜它应该是:

Math.floor(value*100)/100;

这实际上是将
四舍五入到小数点后两位。

也许这是个错误,他们真的想要
Math.floor(val*100)/100.0

你发布的代码实际上什么都没有做。但如果你遵循马克·彼得斯的答案,那就太完美了。如果您对它的实际功能感到困惑,那么会发生以下情况:

Math.floor(value*100)/100;
  • 值*100=693.9045873958734958
  • 数学地板(值*100)=693
  • 数学地板(值*100)/100=693/100=6.93

  • 它可能是打字错误,可能是作者想要的
    Math.floor(val*100)/100
    ,或者它最初不是来自JAVA,并且
    100
    操作是针对整数的。。。有时候,
    sign*absfloor
    是这样做的(也有两个位置)。如果这真的是一个拼写错误,就像公认的答案所暗示的那样,那么我想知道为什么之前没有人注意到它。“难道没有任何测试来证明代码的正确性吗?”汤姆同意,这是我理解过程中发生的错误,但被接受的答案让我清楚地知道了这个计算到底在做什么