检查用户使用get.chomp输入的数字在ruby中是否为浮点数

检查用户使用get.chomp输入的数字在ruby中是否为浮点数,ruby,Ruby,我已经找了很长时间了,但找不到满意的答案。 我想知道如何检查用户输入的数字是否为浮点数。如果是浮点数,则应为无效数字 我有一些东西,但结果总是真的/整数 这是我到目前为止所拥有的 puts "What are the first number you want to divide" number1 = gets.chomp.to_i puts "What is the second number?" number2 = gets.chomp.to_i def is_float(variable

我已经找了很长时间了,但找不到满意的答案。 我想知道如何检查用户输入的数字是否为浮点数。如果是浮点数,则应为无效数字

我有一些东西,但结果总是真的/整数

这是我到目前为止所拥有的

puts "What are the first number you want to divide"
number1 = gets.chomp.to_i
puts "What is the second number?"
number2 = gets.chomp.to_i

def is_float(variable)
return variable % 1 == 0
end

if (number1 == 0) && (number2 == 0)
puts "Invalid input"
elsif (is_float(number1) == false) || (is_float(number2) == false)
puts "Invalid input"

else
def divide(number1, number2)
    return number1 / number2
end

    division_result = divide(number1, number2)

def reminder(number1, number2)
    return number1 % number2
end

reminder_results = reminder(number1, number2)
puts ""
puts "Your result is #{division_result}"
puts "Your reminder is #{reminder_results}"
end

如果使用
anything.to_i
且未显式转换为浮点,则任何
Math
操作都将返回一个整数
3.14159.to_i=>3
你看过的定义了吗
number1
number2
将是
int
s检查数字是否为整数不是更容易,因为用户可以输入很多字符串,这些字符串不是浮点数,但也是无效的?@jordan用户输入的正是
String
。之后发生的任何事情都是代码决策的结果。
puts "What are the first number you want to divide"
number1 = gets.chomp.to_i
=> 100
puts "What is the second number?"
number2 = gets.chomp.to_i
=> 3

# Regular math
result_a = number1 / number2
puts "#{number1} / #{number2} = #{result_a}"
=> 100 / 3 = 33 # Integer class persists...

# Use a ruby library instead! Numeric#divmod
result_b = number1.divmod(number2)
puts "Result: #{result_b}"
=> [33, 1] # [quotient, modulus]