我目前正在编写一个计算器应用程序。我知道,双打并不是最好的数学选择。应用程序中的大多数功能都具有很高的精度,但是没有得到超级难看的结果。我的解决方案是向用户显示精度只有12位小数。我选择了12,因为我的最低精度来自我的数值派生函数。在java中显示双精度到一定的精度
我遇到的问题是,如果我将它乘以一个缩放器然后再除以缩放器,那么精度将很可能会被丢失。如果我使用DecimalFormat,则无法仅显示12,并且使用E表示科学记数法正确显示,但如果不需要,则不会出现。
例如我想
1.23456789111213 to be 1.234567891112
,但从来没有
1.234567891112E0
但我也想
1.23456789111213E23 to be 1.234567891112E23
所以基本上我想一个数字的字符串格式化12个小数位,保留科学记数法,但不应该科学,当它不应该
看看你在做什么?快捷方式可能导致艰苦的工作!你知道double不是正确的选择,但是当你习惯了它时,你应该尝试克服double的问题,实际上,它应该学习如何使用BigDecimal(如所建议的!) – Frankie 2011-04-05 22:01:09