如何向下舍入到PHP中最近的有效数字

Kzq*_*qai 5 php algorithm math significant-digits

是否有任何光滑的方式向下舍入到最近的重要数字?

所以:

0->0
9->9
10->10
17->10
77->70
114->100
745->700
1200->1000
Run Code Online (Sandbox Code Playgroud)

Arj*_*jan 7

$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";
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当$ number为0时,这会失败,但它确实会产生正整数的预期结果.这是一个仅限数学的解决方案.