php 我的数字格式有问题

I have a problem with my number format in php

我想让我的用户在 $_SESSION 变量中存储值,我有这个代码:

<?php
if(!empty($_SESSION["shopping_cart"])) {
    $total = 0;
    foreach($_SESSION["shopping_cart"] as $keys => $values) { ?>
        <tr>
            <td><?php echo $values["item_name"]; ?></td>
            <td><?php echo $values["item_quantity"]; ?></td>
            <td>฿<?php echo $values["item_price"]; ?></td>
            <td><?php echo number_format($values["item_quantity"] *
                    $values["item_price"], 7); ?></td>
            <td><a href="atcform.php?action=delete&id=<?php echo $values["item_id"]; ?>
            "><span class="remove-span">Remove</span></a></td>
        </tr>
        <?php
        $total = $total + ($values["item_quantity"] * $values["item_price"]);
    }
    ?>
    <tr>
        <td colspan="3" align="right">Total</td>
        <td align="right">$<?php echo number_format($total, 7); ?></td>
    </tr>
    <?php
}
?>

当我 运行 它说:

Notice: A non well formed numeric value encountered in C:\Users\auser\Desktop\XAMPP\htdocs\Website1\atcform.php on line 76 and line 72

这两行是 number_format 所在的位置,我想消除这些错误,如果您需要查看更多代码,请告诉我。

这是当前图片:

谢谢!

看起来 number_format() 中的一个值不是数字类型。

尝试在 floatval() 中转换数值:

number_format(floatval($values["item_quantity"]) * floatval($values["item_price"]), 7);

或者更好的是,通过在循环开始时重新分配它们来确保值是浮点数,然后再对它们进行任何数值运算。

foreach ($_SESSION["shopping_cart"] as $keys => $values) { 
    $values["item_quantity"] = floatval($values["item_quantity"]);
    $values["item_price"] = floatval($values["item_price"]);
....