C#从int到double类型转换的问题

2025-05-07 20:47:18
推荐回答(3个)
回答1:

这个问题答过好几遍了,今天干脆把原理说出来吧
double是一定会出误差的,你想一想嘛,内存中记的都是0和1,有限位数的二进制数能表示的十进制小数当然有限,作运算的时候精度肯定是不完全精确的.
不管你用几位,一个double在内存中分配的空间都是64位,所以就会出现这种误差,比如一个循环小数在计算机中表示的就是不精确的,是省略了后面N位小数之后的值.具体的你可以查询MSDN :Double structure
解决办法二楼已经说过了.

回答2:

Math.Round(你的数,小数点位数)

double就是不精确的类型,你可以用上面的方法使用四舍五入得到你需要的值

至少我试过C++,JAVA,C#都有这种误差

double型就是不精确的!
要避免就用四舍五入,结果和你要的是一样的

回答3:

你可以把double的数值转换成成string,split('.')就可以得到小数部分!