【发布时间】:2012-08-10 11:55:53
【问题描述】:
我想计算三个数字的平均值,例如:
d = int(round((a + b + c) / 3.0))
其中a、b、c、d 是整数。
仅使用整数是否可以得到相同的结果?
出于性能原因,我对此感兴趣,我认为使用整数进行数学运算应该比使用浮点数更快。
上面的例子将整数转换为浮点数,计算结果,四舍五入并转换回整数。是否可以避免 int float 转换?
【问题讨论】:
-
1,1,2 的平均值是多少?你想要什么积分结果?
-
是以 a,b,c 开头的整数吗?
-
@Mark: 1, 1, 2 -> 1; 1, 2, 2 -> 2
-
请注意,在当今具有优化 FPU 的 PC 上,性能差异将可以忽略不计 - 如果仍然存在的话。
标签: math floating-point integer average