一尘不染

如何舍入到php中最接近的有效数字

algorithm

是否有任何巧妙的方法可以舍入到php中最接近的有效数字?

所以:

0->0
9->9
10->10
17->10
77->70
114->100
745->700
1200->1000


阅读 264

收藏
2020-07-28

共1个答案

一尘不染

$numbers = array(1, 9, 14, 53, 112, 725, 1001, 1200);
foreach($numbers as $number) {
    printf('%d => %d'
            , $number
            , $number - $number % pow(10, floor(log10($number)))
            );
    echo "\n";
}

不幸的是,当$ number为0时,这失败了,但是对于正整数确实会产生预期的结果。这是一个纯数学的解决方案。

2020-07-28