Code前端首页关于Code前端联系我们

PHP round() 函数简介

terry 2年前 (2023-09-29) 阅读数 53 #PHP
文章标签 PHP

1.舍入函数的基本使用

PHP 中的

round() 函数用于对浮点数或双精度数进行舍入,使其保留指定的小数位数。

函数定义:“对浮点数进行舍入运算。”具体来说,round() 函数有两个参数。第一个参数是要运算的浮点数或双精度数,第二个参数是参数(可选)要保留的小数位数。

例如,要对值 3.4 进行舍入,代码如下:

    $num = 3.4;
    echo round($num);

运行结果:

    3

如您所见,round()函数默认对小数部分进行四舍五入,只保留整个部分。

2。轮函数模式参数

除了指定要保留的小数位数之外,舍入函数还可以设置第三个参数,即模式参数。工作模式参数值为:

  • ROUND_HALF_UP:四舍五入
  • ROUND_HALF_DOWN:丢弃
  • ROUND_HALF_EVEN:四舍五入到最接近的偶数
  • ROUND_HALF_ODD:四舍五入到最接近的奇数

以下是四个模式参数的代码示例:

1、ROUND_HALF_UP

该操作模式参数表示舍入。例如:

    $num = 3.42342;
    echo round($num, 2, PHP_ROUND_HALF_UP);

运行结果:

    3.42

2、ROUND_HALF_DOWN

该工作模式参数表示下降。例如:

    $num = 3.42858;
    echo round($num, 2, PHP_ROUND_HALF_DOWN);

运行结果:

    3.42

3、ROUND_HALF_EVEN

此模式参数表示四舍五入到最接近的偶数。例如:

    $num = 3.425;
    echo round($num, 1, PHP_ROUND_HALF_EVEN); 

运行结果:

    3.4

4、ROUND_HALF_PARK

此模式参数表示四舍五入到最接近的奇数。例如:

    $num = 3.425;
    echo round($num, 1, PHP_ROUND_HALF_ODD); 

运行结果:

    3.5

3。关于舍入函数

的注释

使用round()函数时,应注意以下问题:

1。负数舍入问题

如果你想对负数进行四舍五入,你会发现结果并不如预期。例如:

    $num = -3.5;
    echo round($num);

运行结果:

    -4

这是因为round()函数默认的星型维度模式是“将绝对值舍入到最接近的整数”,所以从-3.5舍入到-4。

解决办法是负数加0.5,然后四舍五入:

    $num = -3.5;
    echo round($num + 0.5) - 0.5;

运行结果:

    -3

2。双精度误差问题

如果运算使用的数字是double类型,可能会出现精度错误。例如:

    $num = 0.1;
    echo round($num + $num + $num, 1);

运行结果:

    0.3

这是因为存储0.1时出现精度误差,导致运算结果不准确。解决方案是进行铸造以尽量减少误差:

    $num = 0.1;
    echo round((float)($num + $num + $num), 1);

运行结果:

    0.3

3。注意PHP_ROUND_HALF_DOWN参数的实际含义

PHP_ROUND_HALF_DOWN模式的实际语义是向下舍入,而不是向上舍入。例如:

    $num = 3.5;
    echo round($num, 0, PHP_ROUND_HALF_DOWN);

运行结果:

    3

虽然此示例产生了预期的结果,但您应该注意参数的实际含义。

4。总结

PHP 中经常使用

round() 函数对浮点数进行舍入。除了通常的第二个参数(指定小数位数)之外,还可以指定第三个模式参数来控制舍入模式。

使用round()函数时,需要注意负数舍入、双精度误差、模式参数的实际含义等问题,避免程序计算结果不符合预期。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门