Donc j'essaie de sortir du code pour convertir des nombres en chaînes. Cependant, j'ai remarqué que dans certains cas il ne conserve pas les deux dernières décimales. Par exemple, je tape 1,01 et 1,04 pour l'addition et je reviens à 2,04. Si je tape juste 1.05, il conserve le numéro et le renvoie exactement. Je comprends ce qui se passe sur les choses sont arrondies. Je ne sais pas comment l'empêcher d'être arrondie cependant. Devrais-je considérer simplement envoyer (1.01 + 1.04) à soi-même comme une seule entrée?Comment conserver mon numéro float dans ruby
Avertissement! Je ne l'ai pas encore essayé donc je ne sais pas si son pris en charge:
user_input = (1.04+1.01) #entry from user
user_input = gets.to_f
user_input.to_test_string
Ce que j'ai jusqu'à présent:
class Float
def to_test_string
cents = self % 1
dollars = self - cents
cents = cents * 100
text = "#{dollars.to_i.en.numwords} dollars and #{cents.to_i.en.numwords} cents"
puts text
text
end
end
puts "Enter two great floating point numbers for adding"
puts "First number"
c = gets.to_f
puts "Second number"
d = gets.to_f
e = c+d
puts e.to_test_string
puts "Enter a great floating number! Example 10.34"
a = gets.to_f
puts a.to_test_string
Merci pour l'aide! Postez du code pour que je puisse essayer!
Les méthodes Ruby 'en' et' numwords' sont-elles, ou quelque chose de l'ActiveSupport de Rails? –
@Andrew Grimm, à mon avis honnête, il ne doit pas être et ne sera jamais dans le noyau ou stdlib de Ruby. – Nakilon
@Nakilon: Je suis d'accord. Je demandais seulement parce que la question était étiquetée à l'origine seulement «ruby» et non «ruby-on-rails». –