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感觉就是个鸡肋,还真想不出什么用到的地方。
  • 相关阅读:
    mac系统终端的color scheme配置和vim配置
    用子网掩码划分子网
    堆排序
    面试遇到两个稍显变态的题目,mark一下
    移动端适配的问题
    移动端click事件延时
    行内元素之间间距的产生与去除
    JS怎么判断一个对象是否为空
    Java面向对象基础
    Java中的final关键字
  • 原文地址:https://www.cnblogs.com/68681395/p/2293868.html
Copyright © 2011-2022 走看看