C#从int到double类型转换的问题
发布网友
发布时间:2022-04-19 23:38
我来回答
共3个回答
热心网友
时间:2023-09-05 08:37
这个问题答过好几遍了,今天干脆把原理说出来吧
double是一定会出误差的,你想一想嘛,内存中记的都是0和1,有限位数的二进制数能表示的十进制小数当然有限,作运算的时候精度肯定是不完全精确的.
不管你用几位,一个double在内存中分配的空间都是64位,所以就会出现这种误差,比如一个循环小数在计算机中表示的就是不精确的,是省略了后面N位小数之后的值.具体的你可以查询MSDN :Double structure
解决办法二楼已经说过了.
热心网友
时间:2023-09-05 08:38
Math.Round(你的数,小数点位数)
double就是不精确的类型,你可以用上面的方法使用四舍五入得到你需要的值
至少我试过C++,JAVA,C#都有这种误差
double型就是不精确的!
要避免就用四舍五入,结果和你要的是一样的
热心网友
时间:2023-09-05 08:38
你可以把double的数值转换成成string,split('.')就可以得到小数部分!