gpt4 book ai didi

php - 使用 PHP 截断 float

转载 作者:行者123 更新时间:2023-12-03 01:56:48 25 4
gpt4 key购买 nike

当一个 float 需要截断为浮点后的某个数字时,事实证明这并不容易做到。例如,如果必须截断到点后的第二位数字,则数字应为

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 ) );
}

最佳答案

floor会按照你的要求做。

floor(45.8976 * 100) / 100;

您不会找到更直接的函数来实现此目的,因为这是一种奇怪的问题。通常你会在数学上正确舍入。出于好奇 - 你需要这个做什么?

关于php - 使用 PHP 截断 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4668628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com