在Java中从Bigdecimal中提取整数和小数部分
发布时间:2020-12-15 01:01:27 所属栏目:Java 来源:网络整理
导读:我想从 java中的bigdecimal中提取整数部分和小数部分. 我正在使用以下代码. BigDecimal bd = BigDecimal.valueOf(-1.30) String textBD = bd.toPlainString(); System.out.println("length = "+textBD.length()); int radixLoc = textBD.indexOf('.'); Syste
我想从
java中的bigdecimal中提取整数部分和小数部分.
我正在使用以下代码. BigDecimal bd = BigDecimal.valueOf(-1.30) String textBD = bd.toPlainString(); System.out.println("length = "+textBD.length()); int radixLoc = textBD.indexOf('.'); System.out.println("Fraction "+textBD.substring(0,radixLoc)+"Cents: " + textBD.substring(radixLoc + 1,textBD.length())); 我得到的输出为 -1和3 但我希望尾随零也从-1.30开始 输出应为-1和30 解决方法
-1.30的浮点表示不准确.以下是对代码的略微修改:
BigDecimal bd = new BigDecimal("-1.30").setScale(2,RoundingMode.HALF_UP); String textBD = bd.toPlainString(); System.out.println("text version,length = <" + textBD + ">," + textBD.length()); int radixLoc = textBD.indexOf('.'); System.out.println("Fraction " + textBD.substring(0,radixLoc) + ". Cents: " + textBD.substring(radixLoc + 1,textBD.length())); 我已经在setScale上放置了一个RoundingMode来将小部分便士分成1.295“一半上升”到1.30. 结果是: text version,length = <-1.30>,5 Fraction -1. Cents: 30 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |