什么时候需要使⽤Double?double、float、decimal的区别float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)
double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)
decimal:数字型,128bit,不存在精度损失(相对不存在,28个有效位后会报错),常⽤于银⾏帐⽬计算。(28个有效位)
float f = 345.98756f;//结果显⽰为345.9876,只显⽰7个有效位,对最后⼀位数四舍五⼊。
double d=345.975423578631442d;//结果显⽰为345.975423578631,只显⽰15个有效位,对最后⼀位四舍五⼊。
注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。
decimal dd=//可以⽀持28位,对最后⼀位四舍五⼊。因为⾼精度,28位的有效位数,这才是财务计算中使⽤的最主要原因。
所有浮点数计算都有精度损失问题,⽽decimal同样是浮点数,所以同样有精度损失!
下⾯的输出结果与不进⾏相加操作相同,并且没有异常。同样造成了精度损失,不过dd的有效位数超过了28位
@{ decimal dd = 100000000000000000000000000m; dd += 0.1m; } @string.Format( "{0}", dd.ToString() );html里的float是什么意思
综上,如果你做财务⽅⾯,那么⽤decimal吧,如果你计算的数值是⼈类所⽤的,那么也⽤decimal吧。double感觉就是个鸡肋,还真想不出什么⽤到的地⽅。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论