Когда число поплавок необходимо усечь до определенной цифры после плавающей запятой, оказывается, что это нелегко сделать. Например, если усечение должно быть сделано для второй цифры после точки, числа должны быть
< /p>
45.8976 => 45.89, 0.0185 => 0.01
< /code>
(вторая цифра после того, как точка не закруглена в соответствии с третьей цифрой после точки). < /p>
Функции, такие как Round () < /code>, number_format () < /code>, sprintf () < /code> round и print uut < /p>
, sprintf () < /code> number и распечатка45.8976 => 45.90, 0.0185 => 0.02
< /code>
Я встретил два решения, и мне интересно, достаточно ли они, а какого лучше использовать < /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
Кемеровские программисты php общаются здесь
1750145884
Anonymous
Когда число поплавок необходимо усечь до определенной цифры после плавающей запятой, оказывается, что это нелегко сделать. Например, если усечение должно быть сделано для второй цифры после точки, числа должны быть
< /p>
45.8976 => 45.89, 0.0185 => 0.01
< /code>
(вторая цифра после того, как точка не закруглена в соответствии с третьей цифрой после точки). < /p>
Функции, такие как Round () < /code>, number_format () < /code>, sprintf () < /code> round и print uut < /p>
, sprintf () < /code> number и распечатка45.8976 => 45.90, 0.0185 => 0.02
< /code>
Я встретил два решения, и мне интересно, достаточно ли они, а какого лучше использовать < /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 ) );
}
Подробнее здесь: [url]https://stackoverflow.com/questions/4668628/truncate-float-numbers-with-php[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия