trgino adlı üyeden alıntı: mesajı görüntüle
$orders = $db->prepare("SELECT sipariskodu,sipariskgtl FROM siparisler WHERE siparisuye=:b ORDER BY sipariskodu DESC LIMIT 1");
$orders->execute([':b' => $usercode]);
if($orders && $orders->rowCount()){
    $ordersrow = $orders->fetch(PDO::FETCH_OBJ);
    $sipariskodu = $ordersrow->sipariskodu;
    $kargoucreti = $ordersrow->sipariskgtl;

    $shopping = $db->prepare("SELECT * FROM siparis_urunler WHERE sipkodu=:s");
    $shopping->execute([':s' => $sipariskodu]);
    $total = 0;
    if($shopping){
        foreach($shopping as $shop){
            $uruntoplam = floatval($shop['sipbirim']) * intval($shop['sipadet']);
            echo $shop['sipurunadi']. "-". $shop['sipbirim'] . "-" . $shop['sipadet'] . "-" . $uruntoplam ."<br>";
            $total+= $uruntoplam;
        }
    }
}
aldığınız hatanın nedeni işlem yapılan değişkenlerde numeric değer yok diyor.
yukarıdaki gibi yaparsanız null dışında hata vermez ama numeric bir değer yoksa 0 olarak alır.

mysql de double için uzunluk katmanı çiftli girilir 6,2 gibi
6 çıktı değerindeki noktanın solundaki maks karakter, 2 çıktı değerindeki noktanın sağındaki maks karakter
Sayın trgino sorun giderildi, ilgine teşekkür ederim.