-
回答: 一般使用 java.math.BigDecimal 类来处理需要高精度的计算
-
原因: 1.浮点数(double,flot)因为精度问题, 容易出现不精确的计算结果
2.浮点数范围比较小
BigDecimal 范围大, 并且比他们精确
- mysql数据库设计
- BigDecimal在进行入库时, 数据库选择decimal类型, 长度能够自定义, 如18; 小数点咱们项目中用的是2, 保留2位小数. 此外还要注意的就是默认值
- 必定写成0.00, 不要用默认的NULL, 不然在进行加减排序等操做时, 会带来转换的麻烦。
-
package com.java10.day04.section01; import java.math.BigDecimal; public class BigdecimalTest { /** * 金融项目中金额应该用什么数据类型? ==》用BigDecimal引用数据类型 * @param args */ public static void main(String[] args) { // 浮点数,存在精度问题 double d1 = 0.19 * 6; System.out.println(d1);// 1.1400000000000001 // 采用BigDecimal 来解决精度问题 BigDecimal bd1 = new BigDecimal("0.19"); BigDecimal bd2 = new BigDecimal("6"); BigDecimal bd3 = bd1.multiply(bd2); System.out.println(bd3);// 1.14 } }
转发来自:https://www.shangmayuan.com/a/9f39a3fb47594f9cb8582f9a.html
java 中 BigDecimal 详解:https://blog.csdn.net/qq_35868412/article/details/89029288