从数据库收到的不必要的价格延

Jes*_*ica 1 php mysql pdo

我从我的项目中获得了不必要的价格长度.举个例子,如果价格是12.99我会得到的12.9899997711

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

产品表

ppid         name             dec
1             shoes           black shoes
2             hat              red hat
Run Code Online (Sandbox Code Playgroud)

item_product表

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

Item_ID        ppid             price
1               1                12.99
2               2                10.00
Run Code Online (Sandbox Code Playgroud)

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>';
            }
        }
    ?>
Run Code Online (Sandbox Code Playgroud)

总结 如何才能显示它.99以及最后.00包含任何项目的任何项目.

Nic*_*ons 6

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