php intval 两位小数乘以100后结果少1
2024-10-17 08:39:33
价格处理的时候往往是两位小数需要换算成分,如:16.33元换算为1633分,直接乘以100也就行了的,但是又使用了一个转换为整数类型的函数intval()
这下子结果就不对了,如图:
结果:
可以看出原本结果应该是1633的,但是使用了函数intval()
之后结果居然变为了1632了,这是由于浮点类型的数字不能在不丢失一点儿精度的情况下通过内部二进制转换得到结果的,换句话说就是浮点类型的计算都会丢失精度的。
该函数的解决方法手册上也给出了,就是需要先使用strval()
函数将变量转成字符串类型,使用情况及结果如下:
还有就是直接使用类型转换也是不行的,如:(int)($pay_price*100)
结果也会损失精度的。
如图:
最新文章
- spring加载hibernate映射文件的几种方式。转自:http://blog.csdn.net/huiwenjie168/article/details/7013618
- mysql memory表性能测试以及使用场景
- HDU 3549 Flow Problem(最大流)
- 自定义获取html元素对象的7种方法。
- python三大神器之一fabric使用
- Unity3D之Mecanim动画系统学习笔记(三):Animation View
- 【C#】添加鼠标管轮事件
- 在Linux上运行C#
- EasyUI 关于IE使用window组件上传文件
- List Of All Machine Learning Sorted By Citation
- Ansible安装配置
- pythhon_如何读写json数据
- 用微信小程序连接leancloud数据库注意事项~
- vscode中php断点调试方法!
- Thread类的join()方法
- 201621123001 《Java程序设计》第14周学习总结
- linux----磁盘介绍
- add_polygon_to_map
- PLSQL Developer是什么?
- elasticsearch6.3.2之x-pack6.3.2破解安装并配合kibana使用