`

java.math.BigDecimal小缺陷

    博客分类:
  • Java
阅读更多
java.math.BigDecimal可以表示任意精度的有限位数值,可是表示不了无限循环小数。
当运算
new java.math.BigDecimal("10").divide(new java.math.BigDecimal("3"))
就会抛出ArithmeticException("Non-terminating decimal expansion; no exact representable decimal result.")
分享到:
评论
3 楼 andyjojo 2009-01-15  
BigDecimal提供了近似值方法的:new java.math.BigDecimal("10").divide(new java.math.BigDecimal("3"),3/*保留位数*/,BigDecimal.ROUND_HALF_UP/*近似方法*/)
2 楼 andyjojo 2009-01-15  
呵呵,我也不知道哦
1 楼 xuyao 2009-01-15  
那你用什么表示无限不循环小数?四舍五入可以自己写啊,你别告诉我你用float或者double,晕

相关推荐

    java解惑.pdf

    import java.math.BigDecimal; public class Change { public static void main(String[] args) { BigDecimal amountPaid = new BigDecimal("2.00"); BigDecimal itemCost = new BigDecimal("1.10"); ...

    JAVA解惑 大量java实例 Java程序员阅读

    import java.math.BigDecimal; public class Change { public static void main(String[] args) { BigDecimal price = new BigDecimal("1.10"); BigDecimal payment = new BigDecimal("2.00"); BigDecimal ...

    经典 java 解 惑

    import java.math.BigDecimal; public class Change { public static void main(String[] args) { BigDecimal payment = new BigDecimal("200"); // 2.00美元以分为单位 BigDecimal cost = new BigDecimal("110...

    Java 精确计算-double-float-String

    为了解决这个问题,Java提供了`java.math.BigDecimal`类,它支持任意精度的十进制运算。`BigDecimal`类可以用来表示和操作精确的十进制数值,避免了浮点数运算中的精度问题。在`ThtBigDecimal.java`这个文件中,很...

    JAVA面试谜题解惑.pdf

    import java.math.BigDecimal; public class Change{ public static void main(String args[]){ BigDecimal two = new BigDecimal("2.00"); BigDecimal onePointOne = new BigDecimal("1.10"); BigDecimal ...

    java解惑

    2. **使用`BigDecimal`:**对于更精确的货币计算需求,可以使用`java.math.BigDecimal`类,该类提供了高精度的算术运算支持。 3. **自定义格式化输出:** ```java System.out.printf("%.2f", 2.00 - 1.10); // ...

Global site tag (gtag.js) - Google Analytics