簡體   English   中英

WP8-C#-將字符串解析為十進制FormatException

[英]WP8 - C# - Parsing string to decimal FormatException

我目前正在嘗試將字符串“ 277.968”解析為十進制,但是我收到了FormatException異常。

我讀到我需要以這種方式執行十進制解析:

string str = "277.968";
decimal.Parse(str, CultureInfo.InvariantCulture);

盡管如此,我還是得到了上述例外。

我能做什么?

編輯:固定浮點數到小數

打印該字符串的長度,報告為80個字符長。

是的,那就是問題所在。 您的字符串不是"277.968" ,而是"277.968\\0\\0\\0\\0\\0\\0(...)" ,並且無法解析。

我的猜測是您已經從某種TextReader中讀取了此內容,但忽略了Read的返回值, Read的返回值是已讀取的字符數。

因此,例如,如果您當前的代碼有效:

char[] risul = new char[80];
reader.Read(risul, 0, risul.Length);
decimal value = decimal.Parse(new string(risul), CultureInfo.InvariantCulture);

那么您應該擁有:

char[] risul = new char[80];
int charsRead = reader.Read(risul, 0, risul.Length);
decimal value = decimal.Parse(new string(risul, 0, charsRead),
                              CultureInfo.InvariantCulture);

...盡管這仍然假設您在一次Read讀取了所有適當的數據,但不一定如此。 您可能只想:

string data = reader.ReadToEnd();
decimal value = decimal.Parse(data, CultureInfo.InvariantCulture);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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