浮点数是32个二进制数字,双数字是64个二进制数字吗?文档太难理解了.
所有位都转换为有效数字?或者小数点的位置是否占用了一些位?
我有一个double小数点后的17位数,即:
double myDouble = 0.12345678901234567;
Run Code Online (Sandbox Code Playgroud)
如果我把它转换成decimal这样的:
decimal myDecimal = Convert.ToDecimal(myDouble);
Run Code Online (Sandbox Code Playgroud)
然后根据文档将值myDecimal四舍五入为Convert.ToDecimal15位数(即0.0123456789012345).我的问题是,为什么要进行这种舍入?
我明白,如果我的原始数字可以准确地表示在基数10中并且我试图将其存储为a double,那么我们只能对前15位数有信心.最后两位数将受到舍入误差的影响.但是,这是一个基础10偏见的观点.我的数字可以用a更准确地表示double,我希望将其转换decimal为尽可能保持尽可能准确的数字.
不应Convert.ToDecimal旨在尽量减少之间的区别myDouble和(double)Convert.ToDecimal(myDouble)?