我正在尝试将温度从华氏温度转换为摄氏温度:
puts 'Convertir grados Fahrenheit a Celcius'
STDOUT.flush
x = gets.chomp
aprox = (x * 100.0).round(2) / 100.0
resultado = (aprox-32)/1.8
puts resultado
我使用正确的公式将华氏温度转换为Celcius:
摄氏度=华氏度 - 32 / 1.8
但是,当我在控制台中运行它时,它会给我以下错误:
`round':错误的参数数量(1表示0)(ArgumentError)
我尝试了不同的东西,但我不明白为什么这不起作用。
答案 0 :(得分:11)
在1.9.0 round
之前的ruby版本中不带参数。它舍入到最接近的整数(参见documentation about floats and the use of round)
请改用:
aprox = (x * 100).round() / 100.0
乘以除以100的整点是围绕x的最后两位数。
答案 1 :(得分:5)
您没有指定您正在使用的Ruby版本。这有所不同,因为在Bloies之前,1.9 Float#round没有参数。它在1.9以上。
>> RUBY_VERSION #=> "1.9.2" >> pi = 3.141 #=> 3.141 >> pi.round #=> 3 >> pi.round(1) #=> 3.1 >> 3.141.round(1) #=> 3.1
答案 2 :(得分:2)
activesupport(rails的一部分)也为你提供了Float#round(精度)