我有一个返回浮点数的过程。然后,我使用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/