PHPExcel意外的浮动行为

我在我的一个项目中创建了一个新的PHPExcel对象,并且奇怪的是在包含库之后一些浮点函数的行为.
以圆形函数为例,在包含PHPExcel之后它不会舍入.

        echo round(90.00 + 9.71, 2); // outputs 99.71
        $sheet = new \PHPExcel();
        $sheet->getProperties()
            ->setCreator('Bob')
            ->setTitle('Title');

        echo round(90.00 + 9.71, 2); // outputs 99.7099999999
        exit;

有没有解决的办法?我尝试使用setValueExplict,但它说找不到PHPExcel_Cell_DataType :: TYPE_STRING.

解决方法:

这归结为PHPExcel在其计算引擎中修改php.ini精度设置.您可以自己覆盖:

echo round(90.00 + 9.71, 2); // outputs 99.71

$savedPrecision = ini_get('precision');
$sheet = new \PHPExcel();
ini_set('precision', $savedPrecision);

echo round(90.00 + 9.71, 2); // outputs 99.71

或者,当您回显浮点值以获取要显示的小数位数时,请使用sprintf()或number_format()

上一篇:最简单的ThinkPHP实例(3)接口


下一篇:thinkphp的开发学习(1)