Ruby 从数字创建范围
我有一个包含数字的哈希数组:Ruby 从数字创建范围,ruby,numbers,Ruby,Numbers,我有一个包含数字的哈希数组: [ { y: 316.28, label: "Kaimur", color: "Light_Green" }, { y: 323.63, label: "Banka", color: "Light_Green" }, { y: 327.85, label: "Gaya", color: "Light_Green" }, { y:
[
{
y: 316.28,
label: "Kaimur",
color: "Light_Green"
},
{
y: 323.63,
label: "Banka",
color: "Light_Green"
},
{
y: 327.85,
label: "Gaya",
color: "Light_Green"
},
{
y: 346.11,
label: "EastChamparan",
color: "Light_Green"
},
{
y: 358.38,
label: "Nalanda",
color: "Light_Green"
},
{
y: 363.13,
label: "Madhubani",
color: "Light_Green"
}
]
这里我的第一个号码是316.28
,最后一个号码是363.13
。我想创建此数组的范围,如300到400
。这是一个使用数组的第一个和最后一个元素的示例
我想把它做成300到400
或者100到200
或者10到20
如果我的数字是316.28
,我想返回一个值300
,如果我的值是363.13
,那么它应该返回400
我该怎么做
如果我的数组列表有三个2号或4号数字,如12.5
、123.45
或3900.56
,我想对我的值进行四舍五入。这些可以是数字,我的所有数组都可以有这些数字。如果我必须在找到长度后对每个数字进行四舍五入,那将成为一场噩梦。我需要一个可以实现这一功能的函数。与否定参数一起使用:
316.28.round(-2)
#⇒ 300
363.13.round(-2)
#⇒ 400
与否定参数一起使用:
316.28.round(-2)
#⇒ 300
363.13.round(-2)
#⇒ 400
*ys.minmax.map{#…}
:)ys=input.map{| e | e[:y]};[ys.min,ys.max]
可以通过{e|e[:y]}变成input.minmax_。如果我没有弄错的话,你可以使用Math.log10
来获得要舍入的正数(你仍然需要将它设为负数;就像num.round(-Math.log10(num).to_I)
应该有效,除非我现在正在学习数学)@SimpleTimeminmax_by
将返回整个散列,因此您仍然需要访问e[:y]
来创建实际范围*ys.minmax.map{#……}
:)ys=input.map{| e | e[:y];[ys.min,ys.max]
可以通过{e|e[:y]}
变成input.minmax_。如果我没有弄错的话,你可以使用Math.log10
来获得要舍入的正数(你仍然需要将它设为负数;就像num.round(-Math.log10(num).to_I)
应该有效,除非我现在正在学习数学)@SimpleTimeminmax\u by
将返回整个散列,因此您仍然需要访问e[:y]
来创建实际范围