将字符串转换为十进制失败

时间:2014-09-16 14:26:24

标签: c# .net visual-studio-2010

因为我无法正确转换?我究竟做错了什么?我需要我的变量值与字符串类型相同。

我必须使用其他类型吗?

static void Stringparadecimal()
{
     string vcarga = "1324.54";
     decimal vcargadec = decimal.Parse(vcarga);

     Console.WriteLine("Convertendo String vcargad para formato decimal ");
     Console.WriteLine("Tipo da variavel vcargadec : " + vcargadec.GetType());
}

4 个答案:

答案 0 :(得分:4)

通过提供正确的文化来指定格式信息(在这种情况下,InvariantCulture表示美国英语):

decimal.Parse("1324.54", CultureInfo.InvariantCulture)

答案 1 :(得分:0)

您必须考虑解析小数值的文化。有些文化认为'.'是小数点,而其他一些文化则认为是','。在进行十进制值解析时,指定要使用的文化始终是一个好习惯。在您的情况下,请向CultureInfo.InvariantCulture方法提供Double.Parse

答案 2 :(得分:0)

尝试这个...

decimal d = decimal.Parse("1324.54", CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString(CultureInfo.InvariantCulture));

答案 3 :(得分:0)

Convert.ToDecimal("1324.54", System.Globalization.CultureInfo("en-US"), "{0:c}".

您可能需要从en-US更改为您要编写代码的国家/地区。