gpt4 book ai didi

Ruby .ceil 和 .floor

转载 作者:数据小太阳 更新时间:2023-10-29 06:29:42 25 4
gpt4 key购买 nike

我是 Ruby 的新手,我正在尝试弄清楚 ceilfloor 是如何工作的,因为当使用小数或小数时我会得到不同的答案(相似的值(value))。以下是我尝试过的:

puts 8/3.ceil == 2   #=> true
puts 8/3.floor == 2 #=> true
puts 2.67.ceil == 2 #=> false
puts 2.67.floor == 2 #=> true

根据我的理解,ceil 应该返回一个更高的数字,而 floor 应该返回一个更低的数字。希望有人能启发我。谢谢! :)

最佳答案

一切都正确返回。

puts 8/3.ceil == 2
#=> true, because 8/3 returns an Integer, 2
puts 8/3.floor == 2
#=> true, because 8/3 returns an Integer, 2
puts 2.67.ceil == 2
#=> false, because 2.67.ceil is 3
puts 2.67.floor == 2
#=> true, because 2.67.floor is 2

为了使这里的事情更有意义,您可以将结果转换为 Float:

(8.to_f / 3).ceil == 2  #=> false
(8.to_f / 3).floor == 2 #=> true
2.67.ceil == 2 #=> false
2.67.floor == 2 #=> true

还有一点要记住,写8/3.ceil实际上是8/(3.ceil),因为./ 绑定(bind)更强。 (谢谢 @tadman)

还有一件事要提到,是(thx @Stefan):

There's also fdiv to perform floating point division, i.e. 8.fdiv(3).ceil. And Ruby also comes with a nice Rational class: (8/3r).ceil.

关于Ruby .ceil 和 .floor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39971830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com