用于number的PHP serialize()输出是打击的

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了用于number的PHP serialize()输出是打击的脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在计算 PHP文件上传的大小,格式为MB,带有一个小数位,如下所示:

$Metadata['upload_data'] = intval($_FILES['Filedata']['size'] / 104857.6) / 10;

当我回显$Metadata [‘upload_data’]时,输出为1.7,正如我所料.但是当我使用serialize($Metadata)序列化数组并将其保存到文件时,输出为:

a:2:{s:7:"uploads";i:11;s:11:"upload_data";d:1.6999999999999999555910790149937383830547332763671875;}

我试图通过以MB为单位存储文件大小而不是字节来提高效率,但这看起来更糟糕!为什么PHP会以这种方式存储它?我是以正确的方式来做这件事的吗?谢谢

解决方法

从手册: http://php.net/manual/en/language.types.float.php

如果你想在你的数组的序列化版本中看到“1.7”,我建议使用json_encode和json_decode.这些函数最终比序列化和反序列化更快,也更容易阅读(通过更容易阅读,我的意思一个人阅读它们,而不是机器).

脚本宝典总结

以上是脚本宝典为你收集整理的用于number的PHP serialize()输出是打击的全部内容,希望文章能够帮你解决用于number的PHP serialize()输出是打击的所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。