0

データベースから Float 値を取得し、それを Float 型の値に追加しようとすると、エラーが発生します。in '+': Array cant be coerced into Float (TypeError)

total = 0.0
db = SQLite3::Database.open "Checkout.sqlite"

for i in 0..@items.length
    tempPrice = db.execute "SELECT price FROM Products WHERE product_code = ?", @items[i]
    total = total + tempPrice
end
4

2 に答える 2

1

tempPriceは配列です。tempPrice[0]値が 1 つしかないことが確実な場合は使用する必要tempPrice.sumがあります。また、結果が複数の値を持つ可能性がある場合は使用できます。

UPD:試してください

total = 0.0
db = SQLite3::Database.open "Checkout.sqlite"

@items.each do |item|
    db.execute("SELECT price FROM Products WHERE product_code = ?", item) do |row|
        total = total + row[0]
    end
end
于 2012-08-23T10:37:54.407 に答える
0
total = 0.0
db = SQLite3::Database.open "Checkout.sqlite"

for i in 0..@items.length
    db.execute("SELECT price FROM Products WHERE product_code = ?", @items[i]) do |row|
        total = total + row[0]
    end
end
于 2012-08-23T10:52:38.553 に答える