2017-06-29 10 views
-2

私はこれまで長いこと探してきましたが、満足のいく回答は見つかりませんでした。 私は、ユーザーが入力した数字が浮動小数点であるかどうかを確認する方法を知りたいと思っています。もし浮動小数点数が浮動小数点であれば、無効な数値になります。ユーザーがget.chompで入力した数字がルビーの浮動小数点数であることを確認してください

私はここで結果は常に真である/整数

が、何かを持っているが、私がこれまで持っているものです。あなたは `anything.to_i`を使用して明示的にfloat型に変換されない場合は

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 
+0

その後、任意の' Math'操作は整数を返します。 '3.14159.to_i => 3' – whodini9

+0

あなたは[' to_i'](https://apidock.com/ruby/String/to_i)の定義を見てきましたか? 'number1'と' number2'は 'int'sになります –

+2

数値が整数であるかどうかをチェックする方が簡単でしょうか?浮動小数点ではなく無効な文字列がたくさんあるので? –

答えて

0
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] 
関連する問題