【发布时间】:2012-08-07 09:55:09
【问题描述】:
我需要将用户输入的数字精确到几位数。就像如果用户输入一些随机值并给出他想要的精度直到三位数字,那么我需要将数字四舍五入到小数点后三位。所以我做了这样的事情
int index = value.indexOf('.');
if (index >= 0)
{
String fractional = value.substring(index);
if (fractional.length() > decimalPlaces)
{
floatValue = roundOffDecimals(floatValue, decimalPlaces);
}
}
retVal = new Float(floatValue);
但是当用户输入一些值但不输入任何值作为小数时,我需要将其显示为带有零作为小数位数的惨淡值。 比如 15 是他的数字,3 是他的准确度,那么我需要将数字显示为 15.000
当它总是改变时,我无法在小数点后显示零。请帮忙。 我试过 DeciamlFormat df = new DecimalFormat("",#.##);但取静态值。而且我的准确性一直在变化。
任何帮助将不胜感激。
【问题讨论】:
-
您显示的精度可以通过format命令来实现。你实际拥有的精度是完全不同的。请记住:您所做的任何乘法、除法、舍入和截断将始终是“近似值”,并且会始终降低浮点值的准确性:en.wikipedia.org/wiki/Floating_point跨度>