美文网首页
用BigDecimal类型来存储金额

用BigDecimal类型来存储金额

作者: 3d7be2e0434d | 来源:发表于2018-08-14 18:14 被阅读0次

    1.金额在用什么类型来存储呢?如果用double,来看一个例子

    double用来计算

    此时输出的结果是 0.09999999999999998,原因是浮点数都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 其结果往往难以确定.所以金额绝对不能用double或者float数据类型来存储!!!

    2.BigDecimal进行加减乘除

    在java中有一种数据类型为BigDecimal,可以用它来存储有关金额的数据。(java.math.BigDecimal)

    具体用法如下:

    BigDecimal的用法

    输出结果为:0.05 ,-0.01,0.0006 ,1.5

    此时需要注意的是,当使用divide方法时,如果除不尽会报错!!!

    3.BigDecimal数据类型比较大小

    BigDecimal数据类型比较大小时用compareTo方法,小于时会返回-1,等于时会返回0,大于时会返回1。

    4.BigDecimal四舍五入

    具体用法如下:

    BigDecimal的setScale方法

    BigDecimal对象四舍五入时使用setScale方法,此方法在计算税费时非常有用,因为小数点位数很多,需要保留多少位数。

    5.mysql中金额字段使用的数据类型

    在mysql数据库中通常使用decimal来保存金额类的数据,如可以使用 decimal(18,2),decimal(18,4)。此外还要注意的就是默认值, 要写成0.00, 不要用默认的NULL!!!

    相关文章

      网友评论

          本文标题:用BigDecimal类型来存储金额

          本文链接:https://www.haomeiwen.com/subject/hugvbftx.html