我这里有一个非常奇怪的问题:
我将值 6.99 存储在名为 amount
的 MySQL 表中。我得到以下输出:
echo $amount; // 6.99
echo $amount * 100; // 600
echo 6.99 * 100; // 699
第二个值显然是错误的。我时不时地进行计算,但我从未见过那个错误。这里发生了什么?
如果重要的话,我在 Win7 上使用 XAMPP。
最佳答案
当字符串转换为整数时,.99 会被删除。
如果您要执行var_dump('6.99')
,它将与var_dump(6.99)
不同
有很多方法可以将字符串转换为 float 。这是一种方法:
$amount = floatval('6.99');
echo $amount*100;
如果打算将其纳入 MySQL,我建议您不要使用 float 。特别是如果这与货币有关。我通常将货币存储为十进制,并在 php 中将其处理为便士的整数。
关于PHP/MySQL > 6.99 x 100 = 600?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28781988/