Ошибка с использованием (int) и (double) вместе, чтобы обрезать десятичные дроби
Когда я использую (int) с (double) несколько раз, это не работает правильно.
Посмотрите на пример кода PHP:
Мне нужно оставить 2 десятичных знака и удалить другие ...
Я знаю number_format (); функция, но я не могу ее использовать. Потому что это округление числа
number_format(24.299,2);
Выход: 24.30
Мне нужно: 24.29
<?php
$str="158.2";
echo (double)$str; // Output: 158.2
echo (double)$str*100; // Output: 15820
echo (int)((double)$str*100); // Output: 15819 <-WHY? It Must To Be 15820, Why 15819?
echo ((int)((double)$str*100)/100); // Output: 158.19
?>
Мне нужно оставить два десятичных знака в числе и вырезать другие без округления.