联系时发现一个问题,比如:
int i=566; console.writeline(i*0.85); console.readline();
显示结果会出现481.09999999999997
不知道为什么会出现这种情况,求解?
这不是异常,计算机对于小数会自动认为是浮点数,如果不错处理,会按默认进度显示,这种情况需要设置输出结果保留几位小数
默认以double精度计算,故显示一大串小数,double至少保存15位有效数字。由于计算机存储小数有精度问题,就不是精确的481.1了,但具体到“精度问题”怎么影响的,就不太清楚了。
小禾斗 发表于2022-11-09 10:16
一般是使用string.Format控制吗?
欲渡黄河冰川 发表于2022-11-15 09:20
“精度问题”是由于十进制转换二进制无法精确表示导致的