我有一个来自 int/int(例如 10/3)的数字(“double”)。
在 C# 上通过 Excess 近似并将其转换为 int 的最佳方法是什么?
我有一个来自 int/int(例如 10/3)的数字(“double”)。
在 C# 上通过 Excess 近似并将其转换为 int 的最佳方法是什么?
你在问System.Math.Ceiling吗?
Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;
通过“过量近似”,我假设您正在尝试“四舍五入”双精度类型的数量。所以,@Doug McClean 的“天花板”方法效果很好。
这里有一个说明:如果你从你开始double x = 0.8;
并进行类型转换,(int)x;
你会得到0
. 或者,如果你这样做,(int)Math.Round(x);
你会得到1
. 如果您开始double y = 0.4;
并进行类型转换,(int)y;
您会得到0
. 或者,如果你这样做,(int)Math.Round(y);
你会得到0
.
考虑 2.42 ,您可以说它是 242/100 顺便说一句,您可以将其简化为 121/50 。