I*E 发帖数: 152 | 1 double a = 20;
double b = 0.4;
a / b 得到结果是50
但是int( a / b )得到结果是49
这是为什么,应该如何解决呢?谢谢! |
o******y 发帖数: 446 | 2 计算的结果 49.99999******
C++ 从 double->int往下取,所以49
解决办法 int(a/b + 0.5)
double a = 20;
double b = 0.4;
a / b 得到结果是50
但是int( a / b )得到结果是49
这是为什么,应该如何解决呢?谢谢!
【在 I*E 的大作中提到】 : double a = 20; : double b = 0.4; : a / b 得到结果是50 : 但是int( a / b )得到结果是49 : 这是为什么,应该如何解决呢?谢谢!
|
I*E 发帖数: 152 | 3 原来如此,那a/b为什么会cout出50呢?C++有自动round机制?
【在 o******y 的大作中提到】 : 计算的结果 49.99999****** : C++ 从 double->int往下取,所以49 : 解决办法 int(a/b + 0.5) : : double a = 20; : double b = 0.4; : a / b 得到结果是50 : 但是int( a / b )得到结果是49 : 这是为什么,应该如何解决呢?谢谢!
|
o******y 发帖数: 446 | 4 数据有个精确度的。
49.99999****** 打印出来的就只能最靠近50了,所以就50
【在 I*E 的大作中提到】 : 原来如此,那a/b为什么会cout出50呢?C++有自动round机制?
|
I*E 发帖数: 152 | 5 好的,谢了!
【在 o******y 的大作中提到】 : 数据有个精确度的。 : 49.99999****** 打印出来的就只能最靠近50了,所以就50
|