`
一笑_奈何
  • 浏览: 68802 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

decimal的divide方法

    博客分类:
  • J2SE
阅读更多
金额的数据类型是BigDecimal
通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常的,异常如下:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. at java.math.BigDecimal.divide(Unknown Source)

应用场景:一批中供客户的单价是1000元/年,如果按月计算的话1000/12=83.3333333333....

解决之道:就是给divide设置精确的小数点divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)
分享到:
评论

相关推荐

    JS的高精度计算(BigDecimal)

    你是否因为JS端的小数计算的精度不足而发愁过呢 其实有个不错的资源可以利用。 引用附件的JS,就可以轻松搞定JS的计算问题了。...alert(new BigDecimal("10.00").divide(new BigDecimal("3E+10"))); } //--> </SCRIPT>

    test-decimal:Mod的测试任务

    - 除法:`divide()`方法可以执行除法,需要注意的是,由于浮点数运算可能存在不可预测的舍入误差,`divide()`方法需要指定`RoundingMode`来控制舍入策略。 3. **比较操作**: - `compareTo()`方法用于比较两个`...

    JAVA api总结

    * divide() 方法:返回大数字对象的商 六、数字工具类 * DecimalFormat 类:数字格式化 * Math 类:数学函数 * format() 方法:将数字格式化为字符串 * parse() 方法:将字符串解析为数字 * abs() 方法:返回数字...

    详谈Java中BigDecimal的一个除法异常

    为了解决这个问题,我们需要在调用`divide`方法时指定商的小数精度和舍入模式。 `divide`方法的签名如下: ```java BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode) ``` - `divisor`...

    【项目实践】商业计算怎样才能保证精度不丢失(csdn)————程序.pdf

    对于除法操作,由于可能存在除不尽的情况,可以使用`divide(BigDecimal divisor, int scale, RoundingMode roundingMode)`方法,其中`scale`指定结果的小数位数,`roundingMode`指定了舍入策略,以避免无限循环的...

    大数的 加 减 乘 除 开方运算Java版

    `divide()`方法用于整除,`divideAndRemainder()`方法则返回一个包含商和余数的数组: ```java BigInteger num1 = new BigInteger("1234567890123456789"); BigInteger num2 = new BigInteger("9876543210987654321")...

    C# 实现计算器功能

    `Calculator`类会包含各种计算操作的逻辑,比如`Add`、`Subtract`、`Multiply`和`Divide`方法。每个方法将接收两个数字作为参数,并返回计算结果。 `Calnder.resx`和`Calnder.cs`以及`Calnder.Designer.cs`文件看...

    javascript版BigDecimal类库

    2. **算术操作**:提供加法(`add`)、减法(`subtract`)、乘法(`multiply`)、除法(`divide`)等基本算术运算,这些操作能确保结果的精度不受JavaScript Number类型的限制。 3. **比较操作**:支持小于(`lt`)...

    BigInteger类,BigeDecimal类,Arrays类,包装类

    - BigDecimal的除法如果除不尽会抛出ArithmeticException,而且直接使用divide()方法可能产生精度损失。解决方法是使用divide(BigDecimal divisor, int scale, int roundingMode),其中: - divisor:要除以的...

    java 速成及应用

    BigInteger f = a.divide(b); System.out.println(c + ", " + d + ", " + e + ", " + f); }}5. 进制转换在 Java 中,可以使用内置的 `Integer.toString(int, int)` 和 `Integer.parseInt(String, int)` 方法来进行...

    java代码-任意给出一个十进制整数,将十进制整数转换为二进制数。

    - 除二取余法(Divide-by-2 and Remainder Method):将十进制数连续除以2,每次得到的余数从下往上排列,即为对应的二进制数。 二、Java 中的数制转换 Java 提供了 `Integer.toBinaryString()` 方法,可以直接将...

    BigDecimal.js.zip

    BigDecimal.js库的核心功能在于提供了大数运算的方法,如加法、减法、乘法、除法,以及比较、取模、平方根等操作。它还支持数字的格式化输出,可以自定义小数位数,以及进行科学计数法的转换。这些方法使得开发者在...

    CSharp 4.0 .Net Framework V4.0 BigInteger 结构

    此外,BigInteger 结构还提供了一些有用的方法,例如 Abs、Add、Compare、CompareTo、Divide、DivRem、Equals、GetHashCode、GreatestCommonDivisor、Log、Max 和 Min 等。这些方法可以对 BigInteger 对象进行各种...

    JAVA基础 第一篇:素数、合数、质数分解、最大公约数、最小公倍数.docx

    Decimal.ONE).equals(BigDecimal.ZERO)) {System.out.println();}}}这段代码会输出从2到100之间的所有质数,并且每10个数换一行。在Java中,质数是大于1且只有两个正因子(1和自身)的自然数。合数则是除了1和它本身...

    ios计算器小应用

    对于二进制和十进制转换,我们可以利用内置的`Int(bitPattern:)`和`String(format:...)`方法。例如,将十进制转换为二进制: ```swift func decimalToBinary(_ decimal: Int) -> String { return String(decimal, ...

    swift 实现高级计算器

    我们可以为每种进制创建一个方法,如`binaryToDecimal()`, `decimalToBinary()`等,这些方法将根据给定的进制值进行转换。 5. **三角函数与对数**:高级计算器还包括了三角函数(如sin、cos、tan)和对数函数。...

    c#计算器源码,流程清晰

    在这个计算器项目中,可能会有一个名为`Calculator`的主类,其中包含了各种计算方法,如加法(Add)、减法(Subtract)、乘法(Multiply)和除法(Divide)等。这些方法接收两个数字作为参数,并返回计算结果。 在...

    C#_basic Calculator_计算器

    - 一个计算器程序通常包含多个方法,比如`Add()`, `Subtract()`, `Multiply()`, `Divide()`等,每个方法对应一种运算。方法的定义和调用是C#编程的基础。 6. **异常处理**: - 在处理除法运算时,我们需要考虑...

    mc8051_overview.pdf

    - Optional implementation of the divide command (DIV) using a parallel divider - Optional implementation of the decimal adjustment command (DA) - No multiplexed I/O ports - 256 bytes internal RAM - Up...

Global site tag (gtag.js) - Google Analytics