php 小数点 错误 浮点型相乘错误

参考文献
http://php.net/manual/zh/language.types.float.php
http://php.net/manual/zh/book.bc.php

浮点计算精度有限
有小数点时不能直接比较大小
相乘也要小心

应该使用专业的函数
bccomp
比较大小

实例

var_export(100*'1.1');
// 110.00000000000001
var_export(100*'1.1' == 110);
// false
var_export(bccomp(100*'1.1' , 110 ));
// 0

小数计算非常小心

100*'1.1'

比较大小时 他是按一堆0的
var_export也是一堆0
var_dump 确实没有一堆0

有小数的计算要用bc系列计算函数
实例

//  设置默认精度2位小数
bcscale(2);
//  相乘
var_export(bcmul(0.1,9));

相关文章

此处评论已关闭