簡體   English   中英

十進制。解析方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM