验证0到1之间的ruby float / integer

时间:2014-10-24 02:53:18

标签: ruby

我正在尝试编写一个验证函数,用于检查变量是否介于0和1之间

unless xff.between?(0,1)
  raise Puppet::ParseError, ("error message here")
end

如果xff为0.5则会引发错误。我该如何解决这个问题,以便接受(和包括)0和1之间的浮点/整数值?

2 个答案:

答案 0 :(得分:3)

实现这一目标最明智的方法之一也是最直接的方法:

unless (xff >= 0.0) && (xff <= 1.0)
  # raise error
end

您还可以使用范围并检查包含:

unless (0.0 .. 1.0).include? xff
  # raise error
end

答案 1 :(得分:1)

你的代码对我来说很适合浮动和整数值:

-1.0.between?(0, 1) #=> false
 0.0.between?(0, 1) #=> true
 0.5.between?(0, 1) #=> true
 1.0.between?(0, 1) #=> true
 2.0.between?(0, 1) #=> false

-1.between?(0, 1) #=> false
 0.between?(0, 1) #=> true
 1.between?(0, 1) #=> true
 2.between?(0, 1) #=> false