用BigDecimal类型来存储金额

2018-08-14  本文已影响0人  3d7be2e0434d

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!!!

上一篇下一篇

猜你喜欢

热点阅读