我遇到了一个奇怪的问题,PHPsprintf
似乎正在改变一些数字。这不会一直发生,只是偶尔发生。
以下代码:
echo sprintf('%04d',$product['priceUSD']*100)."(".($product['priceUSD']*100).")";
为 19.99 美元的产品生成以下输出:1998(1999)
我可以解决这个问题,但我很想知道它为什么这样做,以及是否有任何方法可以解决明显的疯狂。
更新:从 float 转换为 int 时似乎正在发生这种情况。以下给出相同的输出:
echo (int)($product['priceUSD']*100)."(".($product['priceUSD']*100).")";