首页 > 解决方案 > 将字符串解析为浮点数返回不正确的结果

问题描述

我尝试在 C# 中将字符串转换为浮点数。我尝试了在 C# 中将字符串转换为浮点数中找到的所有变体,但无论如何我得到了错误的结果。

我试过

float.Parse((string)parameter);
float.Parse((string)parameter, CultureInfo.InvariantCulture);
float.Parse((string)parameter, CultureInfo.InvariantCulture.NumberFormat);
(float)Convert.ToDouble((string)parameter);

并且所有这些变体都没有(字符串)演员表。我没有得到编译器错误,但结果是错误的。当我使用Math.sin(convertedParameter)then 时,3.14159我得到了结果2,535182E-06

编辑当我3,14159输入我得到的-0,2622557- 也许这会有所帮助。

标签: c#stringfloating-point

解决方案


我认为您的问题不是关于浮点结果,而是关于字符串格式。2.535182E-06等于0.00000265358,只是另一种显示形式。您可以使用 string.Format 方法来获取您想要的格式。

string.Format("{0:F11}",Math.Sin(3.14159))

推荐阅读