将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,以获得更高的精度值。