C# 将“2.45”转换为十进制
我知道这是最愚蠢的问题。但实际上,我很难将pricestring转换为十进制。这是我试过的C# 将“2.45”转换为十进制,c#,.net,decimal,C#,.net,Decimal,我知道这是最愚蠢的问题。但实际上,我很难将pricestring转换为十进制。这是我试过的 string s = "123.45"; decimal d = decimal.Parse(s, NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint); 但我遇到了格式异常 也试过 decimal num; bool pass = decimal.TryParse
string s = "123.45";
decimal d = decimal.Parse(s, NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint);
但我遇到了格式异常
也试过
decimal num;
bool pass = decimal.TryParse("2.85", out num);
num显示为0
任何帮助都将不胜感激。请尝试指定一个不变的区域性,其中包含。是十进制分隔符:
string s = "123.45";
decimal d = decimal.Parse(
s,
NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint,
CultureInfo.InvariantCulture
);
Parse方法使用当前线程区域性来解析数字。所以,如果你使用的是某种文化。不是十进制分隔符,例如fr fr,它将不起作用,因为它期望数字为123,45。尝试指定一个不变的区域性,其中包含。是十进制分隔符:
string s = "123.45";
decimal d = decimal.Parse(
s,
NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint,
CultureInfo.InvariantCulture
);
Parse方法使用当前线程区域性来解析数字。所以,如果你使用的是某种文化。不是小数分隔符,例如fr fr,它不起作用,因为它期望数字为123,45。如果是分隔符,请尝试使用“,”而不是“。”。如果是分隔符,请尝试使用“,”而不是“。”。真的很抱歉,Darin!!!我看到你的答案出现在我的答案之前,并且已经获得了选票,所以我删除了我的答案——或者我是这么想的我按错按钮了。我弄错了。我会的。我的错。再次抱歉。“我真的不会故意这么做的。”马克·格雷威尔,没问题,我也经常这样。我的谷歌浏览器有时会自动滚动到错误的答案,我会错误地编辑别人的答案♦ 能够立即杀死任何东西。。。哦,真的很抱歉,达林!!!我看到你的答案出现在我的答案之前,并且已经获得了选票,所以我删除了我的答案——或者我是这么想的我按错按钮了。我弄错了。我会的。我的错。再次抱歉。“我真的不会故意这么做的。”马克·格雷威尔,没问题,我也经常这样。我的谷歌浏览器有时会自动滚动到错误的答案,我会错误地编辑别人的答案♦ 能够立即杀死任何东西。。。哎呀。