首页 > 其他分享 >BigDecimal 除不尽导致下单 异常

BigDecimal 除不尽导致下单 异常

时间:2024-03-06 19:57:17浏览次数:29  
标签:java divide 下单 new main 除不尽 BigDecimal

    public static void main(String[] args) {
        //异常代码,除不尽导致
        //BigDecimal divide = new BigDecimal(1).divide(new BigDecimal(0.3));

        /*
           Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
            at java.math.BigDecimal.divide(BigDecimal.java:1690)
            at Demo20.main(Demo20.java:63)
         */

        

        //解决问题:进行除法运算时指定保留位数:scale
        BigDecimal divide = new BigDecimal(1).divide(new BigDecimal(0.3),3,BigDecimal.ROUND_FLOOR);
        System.out.println(divide); //3.333
    }

标签:java,divide,下单,new,main,除不尽,BigDecimal
From: https://www.cnblogs.com/czzz/p/18057401

相关文章

  • BigDecimal的基本使用
    BigDecimal的基本使用BigDecimal是Java中用于处理高精度数值的类。它可以表示任意精度的小数,并提供了各种数值运算的方法。1、创建BigDecimal对象BigDecimal类提供了多个方法来创建BigDecimal对象,下面是一些常用的方法: -BigDecimal(Stringval):使用字符串作为参数创建Bi......
  • BigDecimalSerializer
    @JsonSerialize(using=BigDecimalSerializer.class)publicclassBigDecimalSerializerextendsJsonSerializer{@Overridepublicvoidserialize(BigDecimalvalue,JsonGeneratorgen,SerializerProviderserializers)throwsIOException,JsonProcessingException......
  • BigDecimal的基本使用
    BigDecimal的基本使用BigDecimal是Java中用于处理高精度数值的类。它可以表示任意精度的小数,并提供了各种数值运算的方法。1、创建BigDecimal对象BigDecimal类提供了多个方法来创建BigDecimal对象,下面是一些常用的方法: -BigDecimal(Stringval):使用字符串作为参数创建Bi......
  • 原来你是这样的JAVA--[07]聊聊Integer和BigDecimal
    今天来聊聊Java中跟数值处理相关的两个类型Integer和BigDecimal。说起这两个类型,我们肯定都不陌生,但是其中有些容易踩到的坑需要注意避让。Integer整型我们应该每天都会用到,但是每种语言还是有自己的特性。从敬姐刚从.NET转过来的时候踩过的一个坑说起:话说在.NET世界中,数值的基......
  • 从BigDecimal的divide的异常说起
    在过去做项目的某一天中,突然有小伙伴说两个BigDecimal的数据相除(divide)报错了,觉得不可能,然后问他是怎么编写的,他说很简单呀,就是new了2个BigDecimal,然后相除的结果赋值给另外一个BigDecimal对象。听起来觉得没有问题,正常来说,2个Integer(int),2个Double(double)都不会报错,然后问是什么......
  • JAVA之BigDecimal详解
    一、BigDecimal概述Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float......
  • 移动端下单系统验货流程
    功能介绍: 司机出厂出示验货码,验货人用微信扫验货码验货,验货界面显示字段:车号、煤种、供应商、入库库房等,验货成功确认收货司机可以出厂,不验货出不去。为了控制验货人的权限,必须绑定微信注册程序和后台授权信息成功,才能扫验货码成功,其他人扫码会失败!部分截图:     ......
  • 地磅移动下单预约功能
    应用范围:    此应用分为移动端与后台操作端,后台端同时支持移动、平板、电脑等端的等比例展示;功能描述:     客户从用友下单,审核完毕同步到无人值守系统,同时发起钉钉审批,审批通过后客户或司机根据订单移动预约采购与销售,进厂或出厂设备扫描下单对应的二维码,无人......
  • Bigdecimal四则运算怎么减少精度损失
    在进行BigDecimal的四则运算时,通常建议将除法运算放在最后进行,以减小精度损失。这是因为在除法运算中,小数位数可能会增加,导致结果的精度减小。具体来说,如果你按照以下顺序进行四则运算,可以最大程度地保持精度:加法和减法:可以按照需要进行加法和减法运算,这不太会影响精度。乘......
  • 前任开发在代码里下毒了,支付下单接口居然没加幂等
    分享是最有效的学习方式。故事又是一个风和日丽没好的一天,小猫戴着耳机,安逸地听着音乐,撸着代码,这种没有会议的日子真的是巴适得板。不料祸从天降,组长火急火燎地跑过来找到了小猫。“快排查一下,目前有A公司用户反馈积分被多扣了”。小猫回忆了一下“不对啊,这接口我也没动过......