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

делает трюк