PHP 精准加减乘除

本文介绍了PHP的四个基本数学运算函数:bcadd用于加法,bcsub进行减法,bcmul实现乘法,bcdiv负责除法,同时展示了bcpow用于任意精度的乘方计算。通过实例演示了如何在PHP中进行高精度数值操作,并展示了比较函数bccomp的应用。
摘要由CSDN通过智能技术生成

加法

bcadd

(PHP 4, PHP 5, PHP 7, PHP 8)

bcadd — 两个任意精度数字的加法计算

说明 ¶

bcadd(string $num1, string $num2, ?int $scale = null): string

对 num1 和 num2 求和。

参数 ¶

num1

左操作数,字符串类型。

num2

右操作数,字符串类型。

scale

此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0

返回值 ¶

以字符串返回两个操作数求和之后的结果。

<?php

$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

减法

bcsub

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsub — 两个任意精度数字的减法

说明 ¶

bcsub(string $num1, string $num2, ?int $scale = null): string

num1 减去 num2

参数 ¶

num1

字符串类型的左操作数。

num2

字符串类型的右操作数。

scale

此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0

返回值 ¶

以 string 类型返回减法之后的结果。

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

乘法

bcmul

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmul — 两个任意精度数字乘法计算

说明 ¶

bcmul(string $num1, string $num2, ?int $scale = null): string

num1 乘以 num2

参数 ¶

num1

字符串类型的左操作数。

num2

字符串类型的右操作数。

scale

此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0

返回值 ¶

返回字符串类型的结果。

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

除法

bcdiv

(PHP 4, PHP 5, PHP 7, PHP 8)

bcdiv — 两个任意精度的数字除法计算

说明 ¶

bcdiv(string $num1, string $num2, ?int $scale = null): string

num1 除以 num2

参数 ¶

num1

被除数,字符串类型。

num2

除数,字符串类型。

scale

此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0

返回值 ¶

返回字符串类型的结果。如果 num2 是 0 结果为 null

echo bcdiv('105', '6.55957', 3);  // 16.007

乘方

bcpow

(PHP 4, PHP 5, PHP 7, PHP 8)

bcpow — 任意精度数字的乘方

说明 ¶

bcpow(string $num, string $exponent, ?int $scale = null): string

num 的 exponent 次方运算。

参数 ¶

num

string 类型的底数。

exponent

string 类型的指数。 如果指数不是整数,将被截断。 指数的有效范围取决于平台,但起码支持 -2147483648 到 2147483647 的范围。

scale

此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0

返回值 ¶

返回字符串类型的结果。

echo bcpow('4.2', '3', 2); // 74.08

精准比较

bccomp

(PHP 4, PHP 5, PHP 7, PHP 8)

bccomp — 比较两个任意精度的数字

说明 ¶

bccomp(string $num1, string $num2, ?int $scale = null): int

比较 num1 和 num2, 并且返回整型数字的结果。

参数 ¶

num1

左边的运算数,是一个字符串。

num2

右边的运算数,是一个字符串。

scale

可选的 scale 参数被用作设置指示数字, 在使用来作比较的小数点部分。

返回值 ¶

两个数相等时返回 0; num1 比 num2 大时返回 1; 其他则返回 -1。


echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苗先生的PHP记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值