1.23 变成1.3 1.223变成1.23 是无规律的。也就是说后面的如果不是0就要往前面进一位。
1.23 变成1.3 1.223变成1.23 是无规律的。也就是说后面的如果不是0就要往前面进一位。
谢谢各位了。Math.ceil()这个是取整的好像。不是我要的。
------解决方案--------------------这个有点困难,因为浮点数本身就不精确的,很难确定小数点后面有几位有效数。
public static void main(String[] arg) {
double d = 1.22354564;
int k = 1;
double tmp = d * k;
while(tmp % 1 != 0) {
k *= 10;
tmp = d * k;
}
k /= 10;
tmp = Math.ceil(d * k) / k;
System.out.println(tmp);
}
------解决方案--------------------1.23 的机器表示可能是 1.229999999999999982236431605997495353221893310546875, 这样你要什么结果呢?
------解决方案--------------------传成字符串,取出小数位数,然后处理就ok了