BC是二进制计算器的
缩写,BC *
函数的
参数都是操作数加上一个可选的{ int表},如字符串(字符串的字符串left_operand bcadd美元,美元right_operand { int美元,规模})。如果没有提供的收敛,是利用函数的
默认值。这里的大量代表直接由0-9的字符串,和计算的结果也是一个字符串。
bcadd添加两个高精度数
bccomp比较两个高精度的数字,返回1, 0, 1
bcdiv二高精度数字鸿沟
bcmod -高精度数字余数
bcmul -乘二高精度数字
高精度数字电力bcpow
高精度数字电源模块bcpowmod,数论中很常用的
bcscale -
配置默认的小数位数相当于规模=公元前Linux
bcsqrt高精度数字的平方根
bcsub个高精度的数字减去
首先,看一段代码:
< PHP
$ = 0.1;
$ = 0.7;
var_dump(($ + $ B)= = 0.8);
打印值为布尔false。
这就是为什么PHP手册有以下浮点数的警告信息:
警告
浮点数精度
很显然,一个简单的小数,如0.1或0.7,不能
转换成一个内部二进制格式而不会丢失一点精度,这将造成混乱:例如,(0.1 + 0.7)* 10通常返回7,而不是8,因为结果的内部表示类似于7.9999999999。
这与一个事实,即不可能准确地表示有限小数位数的小数部分。例如,十进制1 3变成0 3333333…
所以千万不要相信浮点数的结果是精确到最后的,永远不要比较两个浮点数是否相等,如果你需要更高的精度,你应该使用任何精确的数学函数或GMP函数。
所以上面的公式应该重写。
< PHP
$ = 0.1;
$ = 0.7;
var_dump(bcadd($,$,2)= = 0.8);
这可以
解决浮点数的计算问题。