问题描述
- double 转 int 的问题
-
程序如下:
#includeint main()
{
double f_temp = 1.001 * 10000;
int i_temp = f_temp;
printf("%f, %d
", f_temp, i_temp);
return 0;
}
为何编译运行输出:
10010.000000, 10009
编译器为:
g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
解决方案
取整得到的是不大于这个浮点数的最大整数。但是浮点数在运算和转换为10进制的时候会有微小的误差。所以有时候会出现这种情况。
解决方案二:
java---double转int的问题
double转int精度丢失问题
double转int时精度不一致问题
时间: 2024-09-12 07:40:19