ruby - 奇数除以 2 后四舍五入的原因是什么?

标签 ruby math integer

将奇数除以 2 时看到错误不是比错误计算更好吗?

Ruby 中的示例(我猜它在其他语言中也是一样的,因为整数和 float 是常见的数据类型):

39/2 => 19

我知道输出不是 19.5,因为我们要求的是整数除以整数的值,而不是 float (39.0) 除以整数的值。我的问题是,如果这些数据类型的限制阻止它计算正确的值,为什么要输出最不正确的值?

  • 正确 = 19.5
  • Correct-ish = 20(四舍五入)
  • 最不正确 = 19

最佳答案

Wouldn't it be better to see an error?

抛出错误通常会适得其反,并且在大多数语言中计算效率低下。

并认为这通常是有用的行为:

total_minutes = 563;
hours   = total_minutes / 60;
minutes = total_minutes % 60;

  • Correct = 19.5
  • Correct-ish = 20 (rounded up)
  • Least correct = 19

谁说 20 比 19 更正确?

关于ruby - 奇数除以 2 后四舍五入的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10789821/

相关文章:

ruby - Watir 魔术转义序列?

mysql - ruby /散列:ActiveSupport::HashWithIn DifferentAccess

math - 为什么十进制数不能用二进制精确表示?

python - 一系列 0 和 1 的最有效内存表示是什么?

javascript - 生成指定范围内的随机数——各种情况(int、float、inclusive、exclusive)

C++ unsigned long 在 4294967295 之后不回绕

python - 在 python 中,确定字符串是电子邮件还是整数的最快方法是什么?

ruby-on-rails - Rails dup 和 clone 方法有什么区别?

ruby-on-rails - Mongoid 5 : find_one_and_update with returnNewDocument

php - 如何使用算法真正计算关卡进度?