【问题标题】:Convert string to decimal fail [duplicate]将字符串转换为十进制失败[重复]
【发布时间】:2014-09-16 14:26:23
【问题描述】:

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

我必须使用另一种类型?

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());
}

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

  • 非常感谢!我想知道为什么当我使用 .Parse 时翻译的方式不同?
  • 因为你的默认文化设置不同,可能是因为你的电脑安装了另一种语言。
【解决方案2】:

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

【讨论】:

  • 感谢您的关注我还不能将您宣布为有用的答案,没有足够的积分 = /
【解决方案3】:

试试这个...

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

【讨论】:

    【解决方案4】:
    Convert.ToDecimal("1324.54", System.Globalization.CultureInfo("en-US"), "{0:c}".
    

    您可能必须从 en-US 更改为您编写代码的任何国家/地区。

    【讨论】:

    • 反之亦然...
    猜你喜欢
    • 2018-07-03
    • 2017-06-09
    • 2019-01-17
    • 2013-02-11
    • 2013-01-16
    • 2018-06-05
    • 2013-12-16
    • 2013-10-29
    • 2023-03-08
    相关资源
    最近更新 更多