1

如何计算小数点后的 0?例如,0.0003有 3 个零,0.03有 1 个零,0.00000045有 6 个零。

4

3 回答 3

3

一种方法是不断乘以 10,直到您的数字大于 1;然后计算你必须乘以 10 并减去 1 的次数。

double num = 0.00000045;

int zeros = 0;
while (num < 1) {
    num *= 10;
    zeros++;
}
zeros -= 1;

System.out.println(zeros);
6

如果小数点前还有其他非零数字,则可以使用num = num % 1. 如果你的数字是负数,那么就取它的绝对值。

于 2013-08-20T15:51:44.280 回答
3
(int)Math.log10(1/(x%1))

我认为这个简短的公式应该是正确的[对于正 x - 如果它可以是负数,我们添加绝对值] - 或者在某些情况下它不是?

于 2020-05-13T00:31:21.350 回答
2

您可以使用字符串来做到这一点。首先获取小数点后的数字子串。然后将其转换为 char 数组。然后遍历它并计算零的数量。

于 2013-08-20T16:01:57.247 回答