我有一个浮点值需要四舍五入。
我有一个浮点值设置为0.8,但在C#代码中却是0.80000000000000004。
所以我想将其四舍五入为0.8。
我尝试了以下方法:
float roundedFloatvalue = (float)Math.Round((Decimal)floatvalue, 2, MidpointRounding.AwayFromZero);
并且:
float roundedFloatvalue = Truncate(floatvalue, 2);
public static float Truncate(float value, int digits)
{
double mult = Math.Pow(10.0, digits);
double result = Math.Truncate(mult * value) / mult;
return (float)result;
}
看起来我无法将0.80000000000000004变为0.8,而且我不知道为什么上述任何方法都不起作用。
0.00000000000000004
的差异吗?无论如何,阅读这个:http://floating-point-gui.de/ - Blorgbeard