Когда число поплавок необходимо усечь до определенной цифры после плавающей запятой, оказывается, что это нелегко сделать. Например, если усечение должно быть сделано для второй цифры после точки, числа должны быть
< /p>
45.8976 => 45.89, 0.0185 => 0.01
< /code>
(вторая цифра после того, как точка не закруглена в соответствии с третьей цифрой после точки). < /p>
Функции Как Round () , number_format () , sprintf () ground number и распечатать
45.8976 => 45.90, 0.0185 => 0.02
< /code>
Я встречал два решения, и мне интересно, достаточно ли они хороши, а какое лучше использовать < /p>
< P> 1.function truncNumber( $number, $prec = 2 )
{
return bccomp( $number, 0, 10 ) == 0 ? $number : round( $number - pow( 0.1, bcadd( $prec, 1 ) ) * 5, $prec );
}
< /code>
2.2. написанfunction truncNumber($number, $prec = 2 )
{
return sprintf( "%.".$prec."f", floor( $number*pow( 10, $prec ) )/pow( 10, $prec ) );
}
Подробнее здесь: https://stackoverflow.com/questions/466 ... s-with-php
Усеченные числа с плаванием с PHP ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Гсон. Десериализовать целые числа как целые числа, а не как двойные числа.
Anonymous » » в форуме JAVA - 0 Ответы
- 97 Просмотры
-
Последнее сообщение Anonymous
-