Php方程:变量减去相同的舍入变量,可能吗?

时间:2016-02-02 04:33:15

标签: php variables var equation

< p>我需要以两种方式回显数字(变量),我需要帮助这个等式的代码。 例如:< / p为H. < p>变量是5003< / p> < p>第一个回声必须是:5000(舍入)< / p> < p>第二个回声必须只是舍入的数字:3< / p> < p>所以我想知道我是否以及如何实现这个等式,我在以下几行中思考:变量(5003)减去舍入变量(5000)等于3< / p> < p>那么如果变量是这样的话,那就说15009< / p> < p>拳头将是15000 第二个将是9< / p> < p>我希望这有意义,谢谢你的帮助< / p>

2 个答案:

答案 0 :(得分:3)

您应该查看roundPHP函数:

你可以有这样的负小数点:

round(5003, -3);  // returns 5000
round(15009, -3); // returns 15000

要弄清楚你可以这样做的区别:

$input = 5003
$x = $input;
$y = round($input, -3);
$z = $x - $y; // z is now 3

PHP不是一种数学语言,所以它不能为你解决方程式。

你可以制定一个更通用的解决方案:

$inputs = [
    5003,
    15009,
    55108,
    102010
];

foreach ($inputs as $input) {
    $decimals = floor(log10($input)) - 1;
    $rounded = round($input, -1 * $decimals);
    echo "$input - $rounded = " . ($input - $rounded) . PHP_EOL;
}

输出:

5003 - 5000 = 3
15009 - 15000 = 9
55108 - 55000 = 108
102010 - 100000 = 2010

答案 1 :(得分:0)

假设您想要舍入最后三位数字:

$input = 5003;

$rounded = (int)(5003 / 1000) * 1000;
$rest = $input - $rounded;

echo($rounded . "\n" . $rest);

这导致:

5000
3