-2
Ich habe dies lange gesucht und kann keine befriedigende Antwort finden. Ich möchte wissen, wie ich überprüfen kann, ob die vom Benutzer eingegebene Zahl ein Float ist. Wenn es ein Float ist, sollte es eine ungültige Nummer sein.Überprüfen Sie, ob eine Zahl, die vom Benutzer mit gets.chomp eingegeben wird, ein float in Ruby ist
Ich habe etwas, aber das Ergebnis ist immer wahr/Integer
Hier ist, was ich bisher haben.
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
Wenn Sie 'anything.to_i' verwenden und nicht explizit in einen float konvertieren dann jede' Math' Operation wird eine ganze Zahl zurück. '3.14159.to_i => 3' – whodini9
Haben Sie sich die Definition für [' to_i'] angesehen (https://apidock.com/ruby/String/to_i). 'number1' und' number2' werden 'int's sein –
Wäre es nicht einfacher zu überprüfen, ob die Zahl eine ganze Zahl ist, da es viele Zeichenfolgen gibt, die der Benutzer eingeben kann, die keine Gleitkommazahlen sind, aber auch ungültig sind ? –