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感觉就是个鸡肋,还真想不出什么用到的地方。
  • 相关阅读:
    如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    FileUpload拦截器
    aspnet网页刷新
    查看SQL表的详细信息
    学习GDI+ (1)
    设计模式简单工厂模式
    对数据库表操作,统一的方法。
    随机产生300道四则运算
    略谈从计算机专业,再到软件构建的初识
    #在android studio中维护日程管理系统
  • 原文地址:https://www.cnblogs.com/68681395/p/2293868.html
Copyright © 2011-2022 走看看