Усечение чисел с плавающей запятой с помощью PHPPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Усечение чисел с плавающей запятой с помощью PHP

Сообщение Anonymous »

Когда число с плавающей запятой необходимо усечь до определенной цифры после плавающей запятой, оказывается, что сделать это непросто. Например, если необходимо выполнить усечение до второй цифры после точки, числа должны быть


45.8976 => 45.89, 0.0185 => 0.01


(вторая цифра после точки не округляется в соответствии с третьей цифрой после точки).

Функции например round(), number_format(), sprintf() округлите число и распечатайте

45.8976 => 45.90, 0.0185 => 0.02


Я встретил два решения, и мне интересно, достаточно ли они хороши и какое из них лучше использовать

1.

function truncNumber( $number, $prec = 2 )
{
return bccomp( $number, 0, 10 ) == 0 ? $number : round( $number - pow( 0.1, bcadd( $prec, 1 ) ) * 5, $prec );
}


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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»