首页 » PHP笔记 » 如何解决PHP浮点型数据运算不准的问题

如何解决PHP浮点型数据运算不准的问题

高蒙 2016/11/18 11:30 2.1k浏览 0评论 PHP


php浮点型数据运算相加相减的时候会出现不准确的情况,都说解释型语言对于浮点运算都会有问题的说法是真的。那么怎么解决php浮点型运算不准确的问题呢,其实可以使用内置的函数解决。

<?php
$a = 100.00;
$b = 99.90;
echo $a-$b;
0.0999999999999940.10

echo bcsub($a,$b,2);
0.10

拓展:

对于任意精度的数学,PHP提供了支持用字符串表示的任意大小和精度的数字的二进制计算。 

自 PHP 4.0.4,libbcmath 随同 PHP 一起发布。该扩展不需要任何外部的库。

本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用。 

PHP 的 Windows 版本已内建对此扩展的支持。不需要载入额外的扩展来使用这些函数。


bcadd: 将二个高精确度数字相加。

bccomp: 比较二个高精确度数字。

bcdiv: 将二个高精确度数字相除。

bcmod: 取得高精确度数字的余数。

bcmul: 将二个高精确度数字相乘。

bcpow: 求一高精确度数字次方值。

bcscale:配置程序中所有 BC 函数库的默认小数点位数。

bcsqrt: 求一高精确度数字的平方根。

bcsub: 将二个高精确度数字相减。


上面提供的函数就可以解决php浮点型运算不准确的问题。





相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    487

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。