金额的数据类型是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)
在 java中, 四舍五入通过 BigDecimal 来实现。一定要注意:BigDecimal is Immutable。也就是跟String一样,对前一个的修改,比如setScale(), add()等都会返回一个新的BigDecimal.四舍五入舍入模式是 BigDecimal.ROUND_HALF_UP
BigDecimal定义了一下舍入模式,只有在作除法运算或四舍五入时才用到舍入模式,详细请查阅J2se API文档
分享到:
相关推荐
BigDecimal的计算
javascript的数值精确计算类bigdecimal,改编自java的bigdecimal
BigDecimal工具类.docx
下面小编就为大家分享一篇详谈Java中BigDecimal的一个除法异常,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
java丢失精度,bigdecimal加减乘除
其实有个不错的资源可以利用。 引用附件的JS,就可以轻松搞定JS的计算问题了。 使用例 <!-- function //+ alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10")....
其中,BigDecimal 是一种高精度的十进制浮点数类型,适合处理大数值计算。在一些需求中,我们可能需要将 BigDecimal 值转换为 Integer 类型。这时,可以使用 BigDecimal 的 intValue() 方法进行转换。 当 ...
我们的 new BigDecimal(0.15)得到了一个超接近的数“0.1499999999999999944488848768742172978818416595458984375”,但它就是小于0.15。上网查得,BigDecimal有三种构造方式: java 代码 BigDecimal(Stirng s), ...
BigDecimal向Double转换
BigDecimal类,常用方法是用介绍
BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别...
复杂的BigDecimal计算,需要开方的式子,可输入结果精确位数
bigdecimal转integer
bigdecimal加减乘除运算
string转bigdecimal类型
BigInteger.java BigDecimal.java 文件 源代码
js中引入BigDecimal-all-last.min.js
MyEditTextApplication输入框BigDecimal计算价格,实时输入计算价格并保留小数点后十位数字
Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE...
本版中只有一个用于生产环境的文件:BigDecimal-all-last.min.js,大小为26K,如果WEB服务器打开GZIP压缩,可以减小至7K,如需完整版本请移步至:http://download.csdn.net/detail/aquaqu2009/4575230 简单用法: ...