java学习---double去零和精度问题
来源:互联网 发布:码畜 知乎 编辑:程序博客网 时间:2024/05/21 15:06
之前写计算器作业的时候,偶然发现自己输入式子出现了精度问题,在小可爱的建议下,限制计算器输出的位数。
以下是解决方案:
DecimalFormat df = new DecimalFormat( ".00000000 ");
Double num = Double.parseDouble(df.format(numbers.get(unknown)));
this.result = "="+BigDecimal.valueOf(num).stripTrailingZeros().toPlainString();
备注:DecimalFormat是NumberFormat的一个具体子类,用于格式化十进制数字。括号内的表明需要的数字格式。
例如:如果输入“0.00”,就代表数字结果均为类似2.33这样的结构。
现在我写“.00000000”就是指将输出的数字的小数点后的位数限制在八位以内。
但是!!!
后来输出之后,我发现,我的所有结果都变成了。。。类似“3.50000000”的 ̄△ ̄。
然后还有一个问题需要去掉之后的0了。
根据查询,可以用java.math中的BigDecimal类中的stripTrailingZeros()方法去掉double后无意义的零。
(BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。)
BigDecimal类的静态方法valueOf(double)可以将double数值转换成BigDecimal,然后再调用去零方法。
toPlainString()方法可以将BigDecimal转换成不带指数的String。
0 0
- java学习---double去零和精度问题
- java float和double精度问题
- Java DOuble精度问题总结
- Java Double精度问题总结
- Java Double 精度问题总结
- java double 精度损失问题
- Java Double 精度问题总结
- java double精度丢失问题
- Java计算double精度问题
- Java使用Double精度问题
- Java Double 精度问题总结
- float 和 double 精度问题
- float和double精度问题
- float和double精度问题(java.math.BigDecimal)
- JAVA程序中Float和Double精度丢失问题
- java解决double和float精度不准确的问题
- JAVA程序中Float和Double精度丢失问题
- java中double和float精度丢失问题及解决方法
- iOS开发网络篇—NSURLConnection基本使用
- 配置Log4j
- PAT-Advanced 1110. Complete Binary Tree (25)
- 05.数据的基本语法 Record
- C/C++ debug(二)
- java学习---double去零和精度问题
- 设计模式之观察者模式
- bzoj1026 [SCOI2009]windy数 数位DP
- 浅谈Java中的hashcode方法
- 调整数组顺序使奇数在前
- 四大组件
- UML之面向对象技术
- npm配置
- mysql 常用命令