Преобразование int в float/double
У меня возникают проблемы, когда я хочу преобразовать значения integer
в float
(числа с точками).
$a = 7200;
$b = $a/3600;
echo $b; // 2
$b = floatval($b);
echo $b; // 2
Но это должно быть эхо 2.0
или 2.00
Я также попробовал settype, без успеха.
И я нахожу только помощь/решения/вопросы для "float to int".
Ответы
Ответ 1
Обновлено:
Использование
echo sprintf("%.2f", $b); // returns 2.00
Используйте
echo number_format($b, 2);
например:
echo number_format(1234, 2); // returns 1,234.00
Забастовкa >
Edit:
@DavidBaucum Да, number_format() возвращает строку.
Использование
echo sprintf("%.2f", $b);
Для вашего вопроса используйте
Почему number_format не работает, можно продемонстрировать это. эхо number_format (1234,0) + 1,0 Результат равен 2
echo sprintf("%.2f",(1234 + 1.0 ) ); // returns 1235.00
Ответ 2
Вы можете использовать number_format()
, чтобы выполнить это. Эта функция также позволяет вам определить количество нулей, которые будут отображаться после десятичного числа - вам просто нужно использовать для этого второй параметр:
$a = 7200;
$b = $a/3600;
$b = floatval($b);
echo number_format($b, 2, '.', '');
Или, если вы хотите сделать это одной строкой:
echo number_format( (float) $b, 2, '.', '');
Вывод:
2.00
Демо!
Ответ 3
Что-то вроде:
<?php
$a = 7200;
$b = $a/3600;
$b = number_format($b,2);
echo $b; // 2.00
?>
-
number_format(number,decimals,decimalpoint,separator)
Ответ 4
Я нашел решение самостоятельно:
$b = number_format((float)$b, 1, '.', '');
echo $b; // 2.0
делает трюк