2016-02-02 7 views
0

Мне нужно указать номер (переменную) двумя способами, и мне нужна помощь с кодом для этого уравнения. Пример:Уравнение Php: переменная минус такая же округленная переменная, возможно?

переменная 5003

Первое эхо должно быть: 5000 (округленно)

Второе эхо должно быть только округленные цифры: 3

Так я хочу знать, если и как я могу достичь этого уравнения, я думаю, что среди строк: переменная (5003) минус округленная переменная (5000) равна 3

Таким образом, если переменная позволяет говорить 15009

Кулак будет 15000 Второй будет 9

Я надеюсь, что это имеет смысл, спасибо за помощь

ответ

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 
+0

Да, спасибо, но могу ли я использовать его в уравнении? Пример: x = 5003, y = Round (x, -3), и поэтому z = x-y ... будет z be 3? Спасибо –

+0

Я обновил ответ. Вы можете отрегулировать часть уравнения в соответствии с вашими потребностями. @ MartinSprušanský – Michael

+0

Спасибо, я верю, что это именно то, что мне нужно, я отправляю это с мобильного, поэтому я не могу проверить его atm, но я уверен, что он сработает, я отчитаю, спасибо еще раз для удивительного ответа! –

0

Предполагая, что вы хотите, чтобы округлить последние три цифры:

$input = 5003; 

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

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

Это приводит к в:

5000 
3