Как проверить, имеет ли число десятичное число? Я хочу специально проверить, содержит ли данный номер ".5" Я имею дело только с целыми числами и половинами (0,5, 1, 1,5 и т.д.). Ответ 1 % должен работать variable % 1 != 0 Проверьте это RubyFiddle. Вот скрипка JavaScript тоже. Ответ 2 Всегда используйте 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 Ответ 3 myValue == myValue.floor или если вы действительно хотите проверить конкретно на 0,5, 1,5 и т.д. myValue - myValue.floor == 0.5 Ответ 4 (2.50).to_s.include?('.5') #=> true (2).to_s.include?('.5') #=> false Ответ 5 Try n = 1.5 # => 1.5 n - Integer(n) == 0.5 # => true
Ответ 2 Всегда используйте 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
Ответ 3 myValue == myValue.floor или если вы действительно хотите проверить конкретно на 0,5, 1,5 и т.д. myValue - myValue.floor == 0.5