zoukankan      html  css  js  c++  java
  • 什么时候需要使用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=345.545454879.....//可以支持28位,对最后一位四舍五入。因为高精度,28位的有效位数,这才是财务计算中使用的最主要原因。

    所有浮点数计算都有精度损失问题,而decimal同样是浮点数,所以同样有精度损失!

    下面的输出结果与不进行相加操作相同,并且没有异常。同样造成了精度损失,不过dd的有效位数超过了28位
         @{             decimal dd = 100000000000000000000000000m;             dd += 0.1m;         }         @string.Format( "{0}", dd.ToString() );
     
     
    综上,如果你做财务方面,那么用decimal吧,如果你计算的数值是人类所用的,那么也用decimal吧。double感觉就是个鸡肋,还真想不出什么用到的地方。
  • 相关阅读:
    我来说说博客评论的事
    SWFUpload+Javascript仿163邮件上传文件
    如何暂停和终止线程
    分享我的数据处理类库,欢迎拍砖
    求数列两两之差,再求和
    poj 1006 中国剩余定理
    Poj算法做题顺序
    poj 1328
    ZOJ 3279
    poj 2352 树状数组
  • 原文地址:https://www.cnblogs.com/68681395/p/2293868.html
Copyright © 2011-2022 走看看