四舍五入到最接近的10的幂

问题描述:

我正在尝试找出如何将数字(大于0)四舍五入到最接近的10的幂.

I'm trying to figure out how to round up a number (greater than 0) to the nearest power of 10.

示例:

roundUp(23.4) = 100
roundUp(2.34) = 10
roundUp(.234) = 1
roundUp(0.0234) = 0.1
roundUp(0.00234) = 0.01

对于大于1的数字,我认为这可行:

For numbers greater than 1, I believe this works:

10^(ceil(log10(x)))

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

But for numbers between 0 and 1, I'm not sure how to arrive at the answer.

糟糕.我没有意识到该功能实际上适用于0到0之间的数字. 1.真是令人讨厌,我看到log10(x)为负数,只是假设我不能接受其中的10 ^.

Oops. I didn't realize the function actually DOES work for numbers between 0 & 1. It was a brain fart that I saw a negative number for log10(x) and just assumed I couldn't take 10^ of that.

继续前进.