java - 计算数学底线

时间:2015-04-10 06:24:40

标签: java

您好我刚刚遇到一些遗留代码,我发现了一个Math.floor()计算 比如Math.floor(value)*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

3 个答案:

答案 0 :(得分:8)

我的猜测是它应该是:

Math.floor(value*100)/100;

基本上将value舍入到两位小数。

答案 1 :(得分:4)

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

答案 2 :(得分:0)

您发布的代码实际上什么都不做。但如果你跟随马克彼得斯的回答是完美的。如果你对它的实际情况感到困惑,那么就会发生这种情况:

Math.floor(value*100)/100;
  1. value * 100 = 693.9045873958734958 .................
  2. Math.floor(value * 100)= 693
  3. Math.floor(值* 100)/ 100 = 693/100 = 6.93