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


在 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 - 使用相等参数的 bccomp() PHP 函数

<?php
   // input two numbers
   $left_string1 = "3.12";
   $right_string2 = "3";

   // calculates the comparison of the two
   //number without scale value
   $result = bccomp($left_string1, $right_string2);

   //used equal parameters
   echo "The result is: ", $result;
?>

输出

The result is: 0

上述程序返回 0,因为使用了相等的参数且没有比例值。

示例 2

<?php
   // input two numbers
   $left_string1 = "30.12"; // left value > right value
   $right_string2 = "3";

   //used scale value two
   $scaleval = 2;

   // calculates the comparison of the two
   //number without scale value
   $result = bccomp($left_string1, $right_string2);

   //used equal parameters
   echo "The output is: ", $result;
?>

输出

The output is: 1

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

示例 3

<?php
   // input two numbers
   $left_string1 = "30.12";
   $right_string2 = "35"; // Right value > Left value

   //used scale value two
   $scaleval = 2;

   // calculates the comparison of the two
   //number without scale value
   $result = bccomp($left_string1, $right_string2);

   //used equal parameters
   echo $result;
?>

输出

-1

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

更新于:2021年8月21日

906 次浏览

开启您的 职业生涯

完成课程获得认证

开始学习
广告