PHP/MySQL > 6.99 x 100 = 600?

标签 php mysql

我这里有一个非常奇怪的问题:

我将值 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/

相关文章:

php - fopen 的详细错误

php - 从 CSV 中获取每一行数据,然后在变量中获取它们的数据单元格

php - 如何使用复选框在 mySQL 中输入 true (1) 或 false (0) 并在 php/html 表单中显示为选中状态?

mysql - 连接表并根据值将同一列获取到更多列

php - symfony2实体的slugify方法在哪里

javascript - 无法使用 JSON 和 PHP 将 URL 链接存储到 MySQL 中

php - 将 php 变量值传递给 javascript

mysql - 表与 SQL 请求冲突

mysql - PHP MODx mysql 解析错误?我在哪里更改设置?

php - PHP 中的长文本数据类型