[英]decimal.Parse method
我剛剛在我的C#代碼中發現了一個非常奇怪的錯誤,
所以有一個下一個:
當我試圖像這樣將對象{string}轉換為十進制時:
item.ValiaFundo = row.IsNull("PL_FUNDO") ? 0 : decimal.Parse(row["PL_FUNDO"].ToString());
使用row =“ 2488.1987”的值,它將按預期返回我2488.1987,但是對於某些用戶,返回的值為24881987。
我修復了更改對象類型的問題,將數據庫返回到對象{decimal},如下所示:
item.ValiaFundo = row.IsNull("PL_FUNDO") ? 0 : (decimal)row["PL_FUNDO"];
可以為任何用戶帶來很好的價值,我只想了解為什么會發生該錯誤? 是什么原因造成的? 有人有想法嗎?
PS:兩種情況下服務器和用戶的區域設置相同。
但是,似乎來自服務器的數據已經是十進制類型。
十進制->字符串->十進制是不好的做法。
正如喬恩·斯基特(Jon Skeet)所指出的那樣(他的回答消失了),逗號是小數點。 因此,在執行ToString()時,請注意所使用的文化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.