преобразование 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».

Related of "преобразование int в float / double"

Обновлено:

использование

 echo sprintf("%.2f", $b); // returns 2.00 

использование

 echo number_format($b, 2); 

например:

 echo number_format(1234, 2); // returns 1,234.00 

Редактировать:

@DavidBaucum Да, number_format () возвращает строку.

использование

 echo sprintf("%.2f", $b); 

По вашему вопросу используйте

Почему number_format не работает, можно продемонстрировать это. echo number_format (1234,0) + 1,0 Результат равен 2

 echo sprintf("%.2f",(1234 + 1.0 ) ); // returns 1235.00 

Что-то вроде:

 <?php $a = 7200; $b = $a/3600; $b = number_format($b,2); echo $b; // 2.00 ?> 

 number_format(number,decimals,decimalpoint,separator) 

Вы можете использовать функцию number_format() чтобы выполнить это. Эта функция также позволяет вам определить количество нулей, которые будут отображаться после десятичного числа – вам просто нужно использовать для этого второй параметр:

 $a = 7200; $b = $a/3600; $b = floatval($b); echo number_format($b, 2, '.', ''); 

Или, если вы хотите сделать это одной строкой:

 echo number_format( (float) $b, 2, '.', ''); 

Вывод:

 2.00 

Демо!

Я нашел решение самостоятельно:

  $b = number_format((float)$b, 1, '.', ''); echo $b; // 2.0 

делает трюк