因为我无法正确转换?我究竟做错了什么?我需要我的变量值与字符串类型相同。
我必须使用其他类型吗?
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());
}
答案 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更改为您要编写代码的国家/地区。