我正在转换一个像“41.00027357629127”这样的字符串,我正在使用;
Convert.ToSingle("41.00027357629127");
或者
float.Parse("41.00027357629127");
这些方法返回4.10002732E+15。
当我转换为浮点数时,我想要“41.00027357629127”。这个字符串应该是一样的...
我正在转换一个像“41.00027357629127”这样的字符串,我正在使用;
Convert.ToSingle("41.00027357629127");
或者
float.Parse("41.00027357629127");
这些方法返回4.10002732E+15。
当我转换为浮点数时,我想要“41.00027357629127”。这个字符串应该是一样的...
您的线程的语言环境设置为小数点为“,”而不是“.”的语言环境。
尝试使用这个:
float.Parse("41.00027357629127", CultureInfo.InvariantCulture.NumberFormat);
但是请注意,浮点数不能容纳那么多位的精度。您必须使用 double 或 Decimal 来执行此操作。
首先,它只是您在调试器中看到的数字的表示。实际float
值是近似准确的(尽可能多)。
注意:在处理浮点数与字符串时,始终使用 CultureInfo信息。
float.Parse("41.00027357629127",
System.Globalization.CultureInfo.InvariantCulture);
这只是一个例子;为您的案例选择合适的文化。
您可以使用以下内容:
float asd = (float) Convert.ToDouble("41.00027357629127");
利用Convert.ToDouble("41.00027357629127");
float的精度为 7 位。如果要保留全部,则需要使用保留 15-16 位的double类型。关于格式化,请查看有关格式化双精度的帖子。而且您需要担心C# 中的小数分隔符。
你可以double.Parse("41.00027357629127");
您可以使用双精度而不是浮点解析来获得更高的精度值。