转换具有句点而不是逗号的浮点数?

Mis*_*Dev 10 .net c# .net-2.0

我有来自数据库(字符串)中包含文本和价格的表中的数据.我从数据中提取价格但我的问题是,有时我可以将其转换为浮点数,有时则不会.

我注意到 :

Convert.ToSingle(m.Groups[1].Value);
Run Code Online (Sandbox Code Playgroud)

它的工作原理但并不总是因为某个时期是问题(它需要一个逗号).我能做什么?我试图用","替换".",但有时在其他PC上它是一个需要它的时期!

Pat*_*ins 21

您遇到此问题,因为转换会检查您的PC语言.您将需要执行以下操作:

Convert.ToSingle(m.Groups[1].Value, CultureInfo.InvariantCulture.NumberFormat);
Run Code Online (Sandbox Code Playgroud)

这种方式,它不会检查PC的语言.您可以从MSDN 找到有关InvariantCulture的更多信息.我在项目中有类似的东西,我的转换工作.


bar*_*tta 5

或者明确地询问这个特定的数字格式:

System.Globalization.NumberFormatInfo nf
  = new System.Globalization.NumberFormatInfo ( )
{
  NumberGroupSeparator = "."
};
float f = float.Parse ( "5.34534", nf );
Run Code Online (Sandbox Code Playgroud)