Ответ 1
%
должен работать
variable % 1 != 0
Проверьте это RubyFiddle.
Вот скрипка JavaScript тоже.
Я хочу специально проверить, содержит ли данный номер ".5"
Я имею дело только с целыми числами и половинами (0,5, 1, 1,5 и т.д.).
%
должен работатьvariable % 1 != 0
Проверьте это RubyFiddle.
Вот скрипка JavaScript тоже.
Всегда используйте BigDecimal
, чтобы проверить дробную часть числа, чтобы избежать ошибки с плавающей запятой:
require 'bigdecimal'
BigDecimal.new(number).frac == BigDecimal("0.5")
Например:
BigDecimal.new("0.5").frac == BigDecimal("0.5")
# => true
BigDecimal.new("1.0").frac == BigDecimal("0.5")
# => false
И более общее решение, чтобы увидеть, целое ли число:
BigDecimal.new("1.000000000000000000000000000000000000000001").frac.zero?
# => false
myValue == myValue.floor
или если вы действительно хотите проверить конкретно на 0,5, 1,5 и т.д.
myValue - myValue.floor == 0.5
(2.50).to_s.include?('.5') #=> true
(2).to_s.include?('.5') #=> false
Try
n = 1.5
# => 1.5
n - Integer(n) == 0.5
# => true