我试图用数学圆找到一个浮点数,我发现了以下内容
0.5 --> 0
1.5 --> 2
2.5 --> 2
3.5 --> 4
Run Code Online (Sandbox Code Playgroud)
等等.我相信这是由于浮点错误,但不太确定如何.我怎样才能解决这个问题呢?
从文件 ;
最接近a的整数.如果a的小数分量在两个整数之间,其中一个是偶数而另一个是奇数,则返回偶数.请注意,此方法返回Double而不是整数类型.
Math.Round方法有一些重载这需要MidpointRounding作为如果它是中间两个数字之间可以指定舍入值的参数.
AwayFromZero
Run Code Online (Sandbox Code Playgroud)
当一个数字介于另外两个数字之间时,它会向最接近零的数字四舍五入.
ToEven
Run Code Online (Sandbox Code Playgroud)
当一个数字在另外两个数字之间时,它会向最接近的偶数舍入.
你可以使用这个,克服你所说的:
Math.Round(value, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)
使用以上:
当一个数字介于另外两个数字之间时,它会向最接近零的数字四舍五入.
有关MidpointRounding枚举的进一步文档,请查看此处.