Я делаю ипотечный калькулятор для класса.У меня есть метод, чтобы определить, является ли значение с плавающей точкой, то же самое действительное число, то же самое целое число.Если число является действительным числом
, я попытался использовать if valid_number?(apr) && float?(apr)
, который возвращает true для целых чисел.
def valid_number?(input)
integer?(input) || float?(input)
end
def integer?(input)
/^\d+$/.match(input)
end
def float?(input)
/\d/.match(input) && /^\d*\.?\d*$/.match(input)
end
apr = gets.chomp
if valid_number?(apr)
if float?(apr)
puts "Is #{apr}% correct? Y or n"
end
end
Я ожидаю, что все, что не содержит десятичной дроби, будет ложным для числа с плавающей запятой?метод, но если я не поставлю десятичную, моя программа, кажется, не заботится.