2012-04-14 56 views

回答

3

剛打電話ToString得到十進制值的字符串表示:

order.Total = orderTotal.ToString("G"); 

雖然我不明白你爲什麼會成員Total存儲爲string,而不是作爲一個decimal了。

+0

嗨,感謝您的建議,它將需要改變以將總數更改爲小數而不是字符串 – user1300580 2012-04-14 20:29:04

+0

@ user1300580:在您發佈的第二個類('Order'類)中,只需將'Total'的類型從'string'轉換爲'decimal'。 – Tudor 2012-04-14 20:33:11

+0

作品,謝謝,我顯然看錯了地方。 「初學者錯誤」 – user1300580 2012-04-14 20:35:01

0

聽起來像Order類有一個Total屬性是一個字符串。檢查Order的班級定義。如果是這樣的話,我建議將Total數據類型更改爲小數,因爲將貨幣值表示爲字符串是沒有意義的。 decimal更有意義。

0

您的訂單類是怎樣的?什麼是屬性Total?它看起來像是一個字符串類型。這裏你試圖將十進制值設置爲字符串類型那就是你正在得到那個錯誤。所以你需要將十進制轉換爲字符串,然後將其分配給可變字符串。使用toString()方法。

order.Total = orderTotal.ToString(); 

由於Tudor已經提到,最好使用Total作爲小數屬性,因爲它可以很容易地進行所有的數學運算。每次當您要進行算術運算並將其再次轉換回字符串時,都不需要將其轉換爲十進制格式。

+0

以上編輯顯示訂單類 – user1300580 2012-04-14 20:27:39

+0

@ user1300580:閱讀我的答案的第二段。將它作爲十進制數字是一個更好的主意 – Shyju 2012-04-14 22:57:22

0

Order.Total的類型更改爲十進制。數據類型Decimal不會自動轉換爲字符串(反之亦然),這就是您遇到錯誤的原因,此外,對Order.Total的任何後續調用都將與字符串相關,因此您將無法使用像Order.Total +=

這樣的運算符

還要注意,像DataTable的'format'屬性這樣的任何綁定方便都會被忽略,因爲底層架構不會調用string.ToString(format)。

+0

你認爲這個改變發生在哪裏?你的意思是和上面回答 – user1300580 2012-04-14 20:31:44

+0

@ user1300580的人相同的地方 - 在'訂購'類中進行更改。不要使用'orderTotal.ToString()',因爲這會被認爲是滿足模型的黑客。 – 2012-04-14 20:51:18

相關問題