繁体   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