四舍五入到最接近的 10 次方

acc*_*ate 8 math logarithm rounding

我想弄清楚如何将一个数字(大于 0)四舍五入到最接近的 10 次方。

例子:

roundUp(23.4) = 100
roundUp(2.34) = 10
roundUp(.234) = 1
roundUp(0.0234) = 0.1
roundUp(0.00234) = 0.01
Run Code Online (Sandbox Code Playgroud)

对于大于 1 的数字,我相信这是有效的:

10^(ceil(log10(x)))
Run Code Online (Sandbox Code Playgroud)

但是对于 0 到 1 之间的数字,我不确定如何得出答案。

acc*_*ate 5

哎呀。我没有意识到这个函数实际上适用于 0 和 1 之间的数字。我看到 log10(x) 是一个负数,并且只是假设我不能接受其中的 10^ ,这真是一个大脑放屁。

继续。