PHP intval 精度问题

做跨境支付的时候,发现有的订单时部分支付,
首先便是去查看回调金额和订单金额,果然回调金额比订单金额少了0.01元
然后确认发起支付的报文,也比订单金额少,那就是这边代码问题了。
做个实验 ,看是不是汇率转化为人民币产生的小数引起的问题:

$amount = 1.15;
$cur_money = intval( $amount * 100);
echo $cur_money;

嗯? 结果居然是 114,搜索下 intval 精度 。果然是我太年轻啊。
解决方案一:
使用高精度计算

$bcmul = bcmul($amount, 100);
echo $bcmul;

解决方案二:
先转换为字符串,再转整形

$cur_money = intval( strval($amount * 100));
echo $cur_money;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值