【问题标题】:C# Convert To Decimal String Value like 0.33 [closed]C# 转换为十进制字符串值,如 0.33 [关闭]
【发布时间】:2014-01-21 10:11:22
【问题描述】:

如何将此string 准确转换为decimal 0.55。
Decimal.parse("0,55")
我需要得到不包括前导零的确切值。

【问题讨论】:

  • decimal 的值不知道有多少个前导零。 00000.55 和 .55 是相同的值。 (尾随零是另一回事。)如果您只是想确保当您将转换回字符串时,小数点前至少有一位数字,请使用自定义格式。
  • 如果计算没有前导零有什么用?
  • 我猜问题是框架没有将逗号识别为小数分隔符?
  • 嗯,我需要这个值完全转换为乘法。我得到字符串“0.55”我需要转换为十进制并乘以整数,所以结果需要是正确的。
  • Convert.ToDouble(Regex.Match("0,55", @"\d+").Value, CultureInfo.InvariantCulture)

标签: c# decimal type-conversion


【解决方案1】:

这应该可以解决您的问题(如果我理解问题,那就是):

var number = decimal.Parse("0,55".Replace(',', '.'), CultureInfo.InvariantCulture);

编辑

并非每种文化都使用点 (.) 符号作为小数分隔符。如果您不指定格式提供程序,则框架默认为当前文化。我猜在这种特殊情况下,decimal.Parse() 方法将"0,55" 解释为十进制55.0

【讨论】:

  • 您能否在解析时添加对为什么文化很重要的解释?
  • 史蒂文回答正确。这就是我需要的。谢谢大家...
猜你喜欢
  • 1970-01-01
  • 2013-05-29
  • 2020-09-16
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 2014-01-01
  • 2012-02-03
  • 2013-07-12
相关资源
最近更新 更多