Как проверить, имеет ли число десятичное число?

Я хочу специально проверить, содержит ли данный номер ".5"

Я имею дело только с целыми числами и половинами (0,5, 1, 1,5 и т.д.).

Ответ 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