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

发布网友 发布时间:2022-04-19 23:38

我来回答

3个回答

热心网友 时间:2023-09-05 08:37

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

热心网友 时间:2023-09-05 08:38

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

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

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

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

热心网友 时间:2023-09-05 08:38

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com