我有一个返回 float 的进程。然后我使用roundToDecimals
方法来消除一些数字。
roundToDecimals(weight,3)
----2012 年 6 月 22 日更新:凌晨 1.42 点----
public static double roundToDecimals(double d, int c) {
int temp=(int)((d*Math.pow(10,c)));
return (((double)temp)/Math.pow(10,c));
}
---更新结束
它运行良好,但如果最后一位数字为零,则返回小数点后超过 3 位数字 例如
0.0020
0.0060
0.333
0.071
有谁知道如何处理此类问题吗?
最佳答案
考虑您的 0.333 情况。 没有任何二进制浮点(double
、float
)表示形式,恰好为 0.333。只有“最接近 0.333 的值”,如果您使用的话,您会得到这个值
double d = 0.333;
(我假设您在提示 roundToDecimals
方法的结果,我假设它是一个 float
或 double
。从你的问题很难看出。)
关于java - roundToDecimals 返回太多数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11144614/