PHP – 如何使用 bccomp() 函数比较两个任意精度的数字?

phpserver side programmingprogramming更新于 2025/7/22 15:37:17

在 PHP 中,bccomp() 函数用于比较两个任意数字。bccomp() 函数将两个任意精度的数字作为字符串,并在比较两个数字后返回一个整数。

语法

int bccomp($left_string1, $right_string1, $scaleval)

参数

bccomp() 函数接受三个不同的参数: $left_string1、$right_string2 和 $scaleval。

  • $left_string1− 它表示我们要进行比较的两个给定数字之一的左操作数,它是一个字符串类型参数。

  • $right_string2− 它表示我们要进行比较的两个给定数字之一的右操作数,它是一个字符串类型参数。

  • $scaleval− 它返回比较中将使用的小数点后位数。它是一个整数类型参数,默认值为零。

返回值

bccomp()  函数返回一个整数两个数字 $left_string1 和 $right_string2 的比较结果。

  • 如果 $left_string1 数字大于 $right_string2 数字,则返回 1。

  • 如果 $left_string1 数字小于 $right_string2 数字,则返回 -1。

  • 如果两个给定的数字相等,则 bccomp() 函数返回 0。

示例 1− 使用相等参数的 PHP bccomp() 函数

<?php
   // 输入两个数字
   $left_string1 = "3.12";
   $right_string2 = "3";

   // 计算两个数字的比较结果
   // 不带标度值的数字
   $result = bccomp($left_string1, $right_string2);

   // 使用相等参数
   echo "结果为: ", $result;
?>

输出

结果为:0

上述程序返回 0,因为使用了相等的参数,但没有使用缩放值。

示例 2

<?php
   // 输入两个数字
   $left_string1 = "30.12"; // 左边的值 > 右边的值
   $right_string2 = "3";

   // 使用缩放值 2
   $scaleval = 2;

   // 计算两者的比较结果
   //无比例值的数字
   $result = bccomp($left_string1, $right_string2);

   //使用相等参数
   echo "输出为:", $result;
?>

输出

输出为:1

返回 1,因为左侧值大于右侧值。

示例 3

<?php
   // 输入两个数字
   $left_string1 = "30.12";
   $right_string2 = &"35"; // 右侧值 > 左侧值

   // 使用比例值 2
   $scaleval = 2;

   // 计算两者的比较结果
   // 不带比例值的数字
   $result = bccomp($left_string1, $right_string2);

   // 使用相等参数
   echo $result;
?>

输出

-1

返回 -1,因为右侧值大于左侧值。


相关文章