将string转换为在C#中浮动

我正在转换一个string,如“41.00027357629127”,我正在使用;

Convert.ToSingle("41.00027357629127"); 

要么

 float.Parse("41.00027357629127"); 

这些方法返回4.10002732E + 15

当我转换为浮动我想要“41.00027357629127”。 这个string应该是一样的…

您的线程的语言环境设置为小数点标记为“,”而不是“。”。

尝试使用这个:

 float.Parse("41.00027357629127", CultureInfo.InvariantCulture.NumberFormat); 

但是,请注意,浮点数不能保持精度的许多数字。 你将不得不使用双或十进制来做到这一点。

首先,它只是在debugging器中看到的float表示真正的价值是大致确切(尽可能多)。

注意:在处理浮点数和string时总是使用CultureInfo信息。

 float.Parse("41.00027357629127", System.Globalization.CultureInfo.InvariantCulture); 

这只是一个例子, 为您的情况select一个适当的文化。

使用Convert.ToDouble("41.00027357629127");

Convert.ToDouble文档

你可以使用"float asd = (float) Convert.ToDouble("41.00027357629127");

浮点精度为7位数。 如果你想保持全部,你需要使用保持15-16位的双重types。 关于格式化,看看有关格式化双打的post。 而且你需要担心C#中的十进制分隔符 。

你可以double.Parse("41.00027357629127");

您可以使用double而不是float来parsing,以获得更高的精度值。