使用Ruby创建数组,其起始值、结束值和步长均为浮点数。

4

如何创建一个数组,其中包含在指定范围内(具有起始和结束值)的步长?它应支持float类型的起始和结束值。


如果您只想使用整数值来完成此操作,请参阅 https://dev59.com/4HE85IYBdhLWcg3w2HRa 或 https://dev59.com/IXA75IYBdhLWcg3w7tx6,然后在末尾简单地调用 .to_a - Jeehut
为什么选择 decimal 而不是 float?我认为这很困惑,因为 Ruby 已经有了作为十进制数据类型的 BigDecimal - cremno
@cremno:你是对的,我会更新措辞,只写float - Jeehut
1个回答

6

如需使用自定义步长的浮点数,请使用Numeric#step,示例如下:

-1.25.step(by: 0.5, to: 1.25).to_a
# => [-1.25, -0.75, -0.25, 0.25, 0.75, 1.25] 

如果您只想使用整数值,请参阅此帖子那篇帖子了解如何创建范围,并在最后调用.to_a。例如:
(-1..1).step(0.5).to_a
# => [-1.0, -0.5, 0.0, 0.5, 1.0] 

顺便说一句,如果你知道答案,发帖问问题可能不符合SO的精神... - tomsoft
3
这确实符合SO的精神,甚至鼓励这样做。在meta上看到这篇文章:http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-if-i-knew-the-answer-before-asking - Jeehut
哦,其实很有道理。 - Borsunho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接