当前位置: 首页 > backend >正文

php浮点数运算出错问题

x.99这类的如4.99,9.99基本上都会出错,不仅仅是php,python也是存在的,js也有,应该是非静态语言都都这样的问题吧

字符串跟数字,或者字符串跟字符串的加减乘除等运算,有可能出现精度问题,所以运算后一点要round保留精度后再比较,不然可能出问题。

<?php
$amount = "4.99";
$returned = "15.00";
$sum = "19.99";if ($amount + $returned > $sum) {//$amount + $returned = float(19.990000000000002) > 19.99var_dump("代码会跑进这里");
}if (round($amount + $returned,2) > $sum) {//$amount + $returned = float(19.99) > 19.99var_dump("代码不会跑进这里");
}//bcadd这个函数,它是个扩展,需要重新编译并在php.ini开启,如果没开就用round即可
$sumB = bcadd($amount, $returned, 2);//字符串 19.99
if ($sumB > $sum) {var_dump("代码不会跑到这里");
} 


 

http://www.xdnf.cn/news/9666.html

相关文章:

  • 【白雪讲堂】多模态技术:统一认知的优化器
  • Spring测试框架全面解析
  • Java线程池管理最佳实践(设计模式)
  • 【JavaSE】异常处理学习笔记
  • 对比RFX2401C:AT2401C功率放大器的性价比与PIN兼容方案
  • 智汇云舟携最新无人机2D地图快速重建技术亮相广西国际矿业展览会
  • 蛋白质研究用蛋白酶购买渠道推荐
  • 深入理解C# Socket编程中的BeginConnect异步连接方法
  • vscode中launch.json、tasks.json的作用及实例
  • 苹果iOS应用ipa文件进行签名后无法连接网络,我们该怎么解决
  • 单链表反序实现
  • AI笔记 - 模型调试 - 调试方式
  • 日常踩坑-pom文件里jdbc配置问题
  • buunctf Crypto-[WUSTCTF2020]情书1
  • 模具制造业数字化转型:精密模塑,以数字之力铸就制造基石
  • 5月28日星期三今日早报简报微语报早读
  • AI任务相关解决方案1-基于NLP的3种模型实现实体识别,以及对比分析(包括基于规则的方法、CRF模型和BERT微调模型)
  • SQL进阶之旅 Day 6:数据更新最佳实践
  • STP协议:如何消除网络环路风暴
  • 【分治】翻转对
  • jsrpc进阶模式 秒杀js前端逆向问题 burp联动进行爆破
  • 【JavaEE】Spring事务
  • c++设计模式-介绍
  • 摩尔条纹 原理以及matlab 实现
  • 数据结构 - 树的遍历
  • 【JavaEE】-- 网络原理
  • NetLink
  • SNTP在电力系统通信中的应用
  • C# NX二次开发-查找连续倒圆角面
  • GB/T 36140-2018 装配式玻纤增强无机材料复合保温墙体检测