如何在PHP中将11,22,33转换为10,20,30


How to convert 11,22,33 into 10, 20 and 30 in PHP?

我不知道如何正确地为问题命名(请告诉我这种数字叫什么)。

我想把2位数转换成10个可整除的数字。例如,我期望:

  • 15变成10
  • 23变为20
  • 38岁变为30岁
  • 999变为900
  • 9999变为9000

我试着在谷歌上搜索解决方案,但我不知道如何键入正确的单词。

简单,使用PHP floor函数:http://php.net/manual/en/function.floor.php

floor($number/10) * 10

我写了一个简单的函数:

<?php
function roundDown($var){
    $len = strlen($var)-1;
    $divide = 1;
    for($i=1;$i<=$len;$i++){
        $divide .= 0;
    }

    return floor($var/$divide)*$divide;
}
echo roundDown(9999);

最简单的方法是除以十,然后乘以下限值。(楼层法-phpdocs)

floor($number/10)*10

使用round:

echo round(1241757, -6); // 1000000

来自http://php.net/manual/en/function.round.php

您正在寻找"一个重要数字"。我认为这个答案提供了一个很好的解决方案:

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

缩写:

$x = $y - $y % pow(10, floor(log10($y)));