zoukankan      html  css  js  c++  java
  • 金钱货币用什么类型--(Java)

    0、前言

      项目中,基本上都会涉及到金钱;那么金钱用什么数据类型存储呢?

      不少新人都会认为用double,因为它是双精度类型啊,或者float,

      其实,float和double都是不能用来表示精确的类型的,也就是说金钱是万万不能用float和double来存储的!

    1、why?

    先来个例子:

    你猜猜输出是什么,0.01?NO,请看:

      为什么会这样呢?

       因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定.

      常见的问题是定义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是!

      所以说,float和double都是不能用来表示精确的类型的;

      金额必须是完全精确的计算, 故不能使用double或者float, 而应该采用java.math.BigDecimal.

    2、结论

      float和double都是不能用来表示精确的类型的,也就是说金钱是万万不能用float和double来存储的!

      金钱应该采用java.math.BigDecimal存储;

      MYSQL数据库选择decimal类型,注意默认值 一定写成0.00, 不要用默认的NULL, 否则在进行加减排序等操作时, 会带来转换的麻烦!

    3、BigDecimal的常用方法

     

     

  • 相关阅读:
    VellCar(我的钢管车)
    我的留言发送提醒界面
    PHP邮箱验证是否有效
    PHP字符串操作常用函数
    让php永远后台运行
    找到的两个php爬虫,分享一下
    全国DNS服务器IP地址【电信、网通、铁通】
    我的新顶级域名vell001.ml
    PHP使用SwiftMailer发送邮件
    6个WordPress备份插件
  • 原文地址:https://www.cnblogs.com/yanghj/p/12834423.html
Copyright © 2011-2022 走看看