如何获得数字精度为.05?

时间:2009-04-28 20:03:32

标签: actionscript-3 math actionscript floating-point rounding

以下内容将确保任何大数字仅精确到百分位(related to this answer):

public function round( sc:Number ):Number
{
    sc = sc * 100;
    sc = Math.floor( sc );
    sc = sc / 100;

    return sc;
}

将数字四舍五入到精确度为0.05的最佳方法是什么?是否有一些聪明的事情需要通过位移来获得这个结果?例如,我想:

3.4566 = 3.45

3.04232 = 3.05

3.09 = 3.1

3.32 = 3.3

2 个答案:

答案 0 :(得分:6)

你可以乘以20,然后除以20。

编辑:您将需要使用Math.round()而不是Math.floor(),否则您的测试用例3.09将变为3.05。

答案 1 :(得分:2)

您可以将* 100更改为* 20和/ 100/20。但是,当你可以自然地概括时,为什么要停在那里?

double floor(double in, double precision) {
    return Math.floor(in/precision)*precision
}
//floor(1.07, 0.05) = 1.05