今天有问题。 $19.99转换为内部货币时的比率为1:100,因此乘以100后的结果为1999。 但是,在订单信息的说明中将数据变换为int。 (由于使用json_encode处理包含该float数值字段的数组,因此不确定。 )这个数值为1998。 原本float和int的计算机二进制存储方式就不同。
参考:
3359 www.cn blogs.com/classnotfoundexception/p/6198805.html 3359 zhuan.zhi Hu.com/p/100353781解决方法:首先使用strval
33559 www.PHP.net/manual/zh/function.intval.PHP
是什么? PHP///observethefollowingechointval (strval (-0.0001 ) ); //0echointval(strval(-0.00001 ); //-1//thisisbecauseechostrval (-0.0001; //0001echostrval(-0.00001 ); //- 1.0e-5//thusbewarewhenusingfunctiontrunc2_ bad ($ n ) {returnintval(strval ) $n*100 )/100; (/usethisinsteadfunctiontrunc2_ good ) ($n ) (返回安装(floatval ) strval($n*100 ) ) ) ) ) 此外,官方还给出了一些处理任意精度数字的常用函数,例如:
bcadd — 2两个任意精度数字的加法计算
bccomp —比较任意精度的两个数值
bcdiv — 2两个任意精度的数值除法计算
bcmod —对任意精度的数值建模
bcmul — 2两个任意精度数字乘法计算
bcpow —任意精度数字的幂
bcpow mod—raiseanarbitraryprecisionnumbertoanother,reduced by a specified modulus
bcscale —设置所有bc数学函数的默认小数保留位数
bcsqrt —任意精度数字的平方根
bcsub — 2减去两个任意精度数字
参考: https://www.PHP.net/manual/zh/ref.BC.PHP
author :学习指导
本文地址: https://blog.csdn.net/leedan ing/article/details/103074520