числа — удалить десятичное место в переполнении стека

В PHP я получаю числа из базы данных с 3 десятичными знаками. Я хочу удалить последнюю десятичную точку. Таким образом, 2.112 станет 2.11, 23.123 станет 23.12, а 123.267 станет 123.26. Это как делать слово на десятичном уровне.

0

Решение

Ты можешь использовать number_formatВы указываете количество знаков после запятой в качестве второго arugment.

пример

$number = 534.333;

echo number_format($number,2) // outputs 534.33

Или использовать round

$number = 549.333;
echo round($number, 2) // outputs 534.33

Похоже на substr это то, что решил вопрос в конце

substr($number,0,-1); // everything besides the last decimal
0

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

<?php

$a = floor($a*100)/100;

Так что вы можете сделать что-то вроде этого:

<?php

// Note might overflow so need some checks
function round_floor($number, $decimals) {
$n = pow(10, $decimals);
return floor($number * $decimals)/$decimals;
}

echo round_floor(2.344, 2); // Would output 2.34
echo round_floor(2.344, 1); // Would output 2.3

Другой вариант, если числа большие:

<?php
// $decimal should be positive
function round_floor($number, $decimals) {
$a = strstr($number, '.', true);
$b = strstr($number, '.');
return $a . substr($b, 0, $decimal -1);
}
0

По вопросам рекламы [email protected]