Получить ноль строки после десятичной дроби в плавающей запятой

У меня есть строка string(5) "388.0", Я просто хочу получить именно float number с one zero или же two zero или любые числа после десятичного числа. Как мне этого добиться?

Просто (float) $ val дает мне только float(388) без zero,

0

Решение

Вы пробовали встроенный number_format функция?

<?php

$nb = '388.0';

var_dump(number_format((float)$nb, 0)); // string '388'
var_dump(number_format((float)$nb, 1)); // string '388.0'
var_dump(number_format((float)$nb, 2)); // string '388.00'

Конечно, если вы приведете вашу строку как float, то по умолчанию она будет (float)388 если все числа после десятичной точки все 0, Я не думаю, что есть способ обойти это, но (float)388 === 388.0 правда.

1

Другие решения

<?php

$cost = [
301.215,
359.2487,
389.21,
32.0
];

for ($i = 0; $i < count($cost); $i++) {
$precision = @count(str_split(explode(".", $cost[$i])[1]));
echo number_format($cost[$i], $precision)."\n";
}

//Output
301.215
359.2487
389.21
32.0
[Finished in 0.1s]

Это вернет число с заданной точностью

1

http://php.net/manual/en/function.bcmul.php

var_dump(bcmul('388.0', '1', 2)); // string '388.0' (length=5)
var_dump(bcmul('388.00', '1', 2)); // string '388.00' (length=5)
var_dump(bcmul('388.0021', '1', 4)); // string '388.0021' (length=5)
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector