1 Math.round(-1.5) 结果是 -1 还是 -2
记得前几年做java面试题的时候遇到求 Math.round(-1.5) 值的问题,今天在看JavaScript关于math函数的时候,特意去比较了下这两种语言四舍五入的结果。得出结果后仍意犹未尽,就把python,c,matlab也拿出来比较了一下。
2 目标
求负数四舍五入后的结果
3 java
1 2 3 4 5 6 7
| public class mytest { public static void main(String[] args){ System.out.println(Math.round(-1.4)); System.out.println(Math.round(-1.5)); System.out.println(Math.round(-1.6)); } }
|
4 JavaScript
1 2 3
| console.log(Math.round(-1.4)); console.log(Math.round(-1.5)); console.log(Math.round(-1.6));
|
5 c/c++
1 2 3 4 5 6 7
| #include <stdio.h> #include <math.h> int main(){ printf("%f \n",round(-1.4)); printf("%f \n",round(-1.5)); printf("%f \n",round(-1.6)); }
|
6 python
1 2 3
| print(round(-1.4)) print(round(-1.5)) print(round(-1.6))
|
7 matlab
1 2 3
| disp(round(-1.4)); disp(round(-1.5)); disp(round(-1.6));
|
8 结论:
- java/JavaScript -1.5 四舍五入都为 -1.
- c/c++/python/matlab -1.5 四舍五入结果都为 -2.
不同语言关于负数中‘入’的理解并不统一。