今天在做跟第三方数据的对接工作,为了确保数据的安全(避免篡改),进行了安全校验。双方数据通过json格式传递,在校验数据一致性时遇到float类型的数据小数点末尾0丢失情况,即123.00 在php使用json_decode()后会变成123。 不仅json_decode(), 像其它(string)强制转换或''引号连接转字符串等,都会丢失掉
在 PHP 中,当你将一个浮点数转换为字符串时,如果小数部分末尾的零没有实际的值(即它们不是必需的),那么这些零可能会被省略。这是因为 PHP 的 floatval()
函数或类型强制转换会将浮点数转换为最简形式。
所以解决方式就是跟第三方沟通,两边浮点型数据当作字符串形式传递。