如何检查变量输入的右移小数?

时间:2014-04-14 02:32:05

标签: javascript decimal scale axis-labels

我正在根据yMin值对多个y轴的数据进行自动缩放。

我有一组多个yAxis的输入数据,如下所示:

yAxis1:数据集1,yMin0.118234 - >因此,我minScale的{​​{1}}将为yAxis1

0.1数据集2,yAxis2:yMin - >因此,我0.011823的{​​{1}}将为minScale

yAxis2数据集3,0.01yAxis3: - >因此,我yMin的{​​{1}}将为0.001182

显然,minScale取决于yAxis3的数量并执行0.001

但我如何确定minScale任何帮助的数量?

2 个答案:

答案 0 :(得分:1)

var decimal = -Math.floor(Math.log(yMin) / Math.log(10));

答案 1 :(得分:1)

StraightForward Way:

var getRightDecimal = function(num) {
    var ori = num;
    var n = 0;
    if(num >= 10) {
        while(num >= 10) {
            --n;
            num /= 10;
        }
    }
    else {
        while(num < 1) {
            ++n;
            num *= 10;
        }
    }
    console.log("yMin:",ori, " Base:",Math.pow(10, -1*n));
    return n;
}

测试

getRightDecimal(1.12);
getRightDecimal(10.1);
getRightDecimal(10);
getRightDecimal(100);
getRightDecimal(0.118234);
getRightDecimal(0.011823);
getRightDecimal(0.001182);

输出

yMin: 1.12  Base: 1
yMin: 10.1  Base: 10
yMin: 10  Base: 10
yMin: 100  Base: 100
yMin: 0.118234  Base: 0.1
yMin: 0.011823  Base: 0.01
yMin: 0.001182  Base: 0.001