在Java中从Bigdecimal中提取整数和小数部分
发布时间:2020-05-24 09:02:08 所属栏目:Java 来源:互联网
导读:我想从 java中的bigdecimal中提取整数部分和小数部分. 我正在使用以下代码. BigDecimal bd = BigDecimal.valueOf(-1.30) String textBD = bd.toPlainString(); System.out.println(length = +textBD.length()); int radixLoc = t
|
我想从 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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – “无法找到符号”编译错误
- javafx – Java 11与Java 8中的拖放工作方式不同
- java – Spring Meta-Annotations
- java – 如何检查类是否存在
- java – 为什么FileSystemXmlApplicationContext会对存在的
- 本地GAE java dev服务器的Google Pub / Sub测试策略
- java采用中文方式显示时间的方法
- java – 具有多个有界类型和未经检查的强制转换的Class.asS
- mybatis 中 foreach collection的用法小结(三种)
- java – 为什么不在这个JNI代码中显示select系统调用?
