php - 从数据库收到不必要的价格扩展

标签 php mysql pdo

我的商品的价格长度过长。例如,如果价格是 12.99,我将得到 12.9899997711

我的数据库看起来像下面有 800 多个项目

产品表

ppid         name             dec
1             shoes           black shoes
2             hat              red hat

item_product 表

我的价格是 type float(5,2)

Item_ID        ppid             price
1               1                12.99
2               2                10.00

PHP/HTML 这就是我显示价格的方式

<?php
        dbconnection(); 
        $stmt2 = $conn->prepare("SELECT name, Price FROM item_product WHERE ppid=:id LIMIT 1");
        $stmt2->bindParam('id',$id);
        $stmt2->execute();
        $rows2 = $stmt2->fetchAll(PDO::FETCH_ASSOC); 
        foreach ($rows2 as $row2) {
            if ($i == 0) {  
            echo '<td>Price:</td>';
                echo '<td name="pricetag" class="pricetag" id="pricetag">&pound;'.$row2['Price'].'</td>';
            }
        }
    ?>

总结 我怎样才能让它显示 .99.00 任何最后有任何项目的项目。

最佳答案

看起来你的价格字段可能被定义为某种浮点类型,它不会准确地保存小数。对于货币,您希望保存准确的金额,因此使用 DECIMAL 数据类型来定义列。

关于php - 从数据库收到不必要的价格扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18040634/

相关文章:

php - 从php访问/var/log文件

php - 获取错误对象类 mysqli_result 无法转换为字符串

php - Laravel Eloquent 关系不起作用

php - Laravel 5.1 - 检查数据库连接

mysql - 在 MySQL 中创建过程时如何使 ORDER BY 工作?

php - Php PDO函数: lastInsertId?有多安全

javascript - 所选选项必须在 onchange 函数之后显示

mysql - 错误,使用 PDO 与 mysql 的连接过多显示了我们的数据库用户名和密码?

php - PDO mysql : How to know if insert was successful

mysql - 跟踪电子商务访客和销售