PHP加减乘除出现错误
前言
今天在PHP计算带小数点运算,比如就是1.3*3.0=3.90000000004
,原本是等于3.9
才对呀,但是为什么?说实话,我也不太懂,这是讲问题解决了。
PHP语言的解决方法
PHP里边编译有叫bcmath
的模块,这个是专门用来解决这个问题的。
首先,需要确定自己的PHP有编译bcmath
,如果没有的话,需要自行编译安装啦。
其次,我要要将之前的纯粹的数学加减乘除换成bcmath
的模块。
加法:
bcadd
string bcadd ( string $left_operand , string $right_operand [, int $scale ] )
减法:
bcsub
string bcsub ( string $left_operand , string $right_operand [, int $scale = int ] )
乘法:
bcmul
string bcmul ( string $left_operand , string $right_operand [, int $scale = int ] )
除法:
bcdiv
string bcdiv ( string $left_operand , string $right_operand [, int $scale = int ] )
就先列出常见的加减乘除方法吧其它运算法则看这里吧,其中上面的第一个参数是第一个操作数,第二个参数是第二个操作数,第三个参数就是保留小数点后几位的意思。
其它语言的解决方法
比如JAVA
、JavaScript
、C#
、Perl
、Python
、Ruby
、SQL
这些语言呀,我推荐看这一篇文章啦What Every Programmer Should Know About Floating-Point Arithmetic or Why don’t my numbers add up?,这里有很好的解决方案。