美文网首页
Java中金钱的存储方式,BigDecimal 与 mysql的

Java中金钱的存储方式,BigDecimal 与 mysql的

作者: 王小手无限超神 | 来源:发表于2021-09-30 13:56 被阅读0次

    BigDecimal 与 mysql的decimal

    double和float类型存储数字可能导致 精度丢失,而BigDecimal则不会有精度损失问题。创建BigDecimal对象,注意不要直接传入一个double类型的数,因为这样有可能出现误差,结果是不确定的。

    BigDecimal BigDecimal(double d); //废弃,精度不能保证
    BigDecimal BigDecimal(String s); //常用,推荐使用
    static BigDecimal valueOf(double d); //常用,推荐使用
    BigDecimal("0.1")
    BigDecimal(0.1)
    BigDecimal.valueOf(0.1)
    第一个和第三个直接等于0.1 而第二个则只是近似于0.1
    add(BigDecimal)
    BigDecimal对象中的值相加,然后返回这个对象
    
    
    subtract(BigDecimal)
    BigDecimal对象中的值相减,然后返回这个对象
    
    
    multiply(BigDecimal)
    BigDecimal对象中的值相乘,然后返回这个对象
    
    
    divide(BigDecimal)
    BigDecimal对象中的值相除,然后返回这个对象
    
    public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode) 
    设置小数的处理方式和返回小数位数
    

    Mysql 与BigDecimal
    通常,任何MySQL数据类型都可以转换为 java.lang.String,并且任何数字类型都可以转换为任何Java数字类型,但可能会出现舍入,溢出或精度损失。

    Mysql数据库的decimal类型 对应Java类型为 java.math.BigDecimal

    相关文章

      网友评论

          本文标题:Java中金钱的存储方式,BigDecimal 与 mysql的

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