PHP中实现两个带货币符号数值减法运算的方法
问题原因
- 语法逻辑错误:你写的
$agreementdata['amount'-'earnestamount']是完全错误的写法。PHP中两个字符串做减法运算时,会先尝试将字符串转为数值,'amount'和'earnestamount'都是非数字开头的字符串,转数值结果都是0,最终相当于你在读取$agreementdata[0],根本不是你要的两个字段值相减。 - 数据类型问题:你的两个金额字段都带
$货币符号,属于字符串类型,无法直接执行数值减法运算,需要先提取出纯数字部分再计算。
正确实现代码
<?php // 取出两个金额字符串,去除$符号后转为浮点型 $tamount = (float)str_replace('$', '', $agreementdata['amount']); $eamount = (float)str_replace('$', '', $agreementdata['earnestamount']); // 执行减法计算 $ramount = $tamount - $eamount; // 如果需要输出结果也带$符号,可以改成 echo '$' . $ramount; echo $ramount; ?>
内容的提问来源于stack exchange,提问作者shahzeb khalid
相关产品推荐
相关产品推荐

