66 votes

La concaténation de chaîne de caractères avec le nombre de rubis

Je suis total begineer en ruby, de sorte que son très novice question.

Je suis en train de concaténer une chaîne de caractères avec une valeur float comme suit, puis de l'imprimer.

puts " Total Revenue of East Cost: " + total_revenue_of_east_cost

total_revenue_of_east_cost est une variable contenant valeur float, comment je peux le faire imprimer?

99voto

Stephen Doyle Points 2505

Ce n'est pas exactement la concaténation, mais il va faire le travail que vous voulez faire:

puts " Total Revenue of East Cost: #{total_revenue_of_east_cost}"

Techniquement, c'est de l'interpolation. La différence est que la concaténation s'ajoute à la fin d'une chaîne, où que l'interpolation évalue un peu de code et l'insère dans la chaîne. Dans ce cas, l'insertion, à la fin de votre chaîne.

Ruby permettra d'évaluer quoi que ce soit entre accolades dans une chaîne où l'accolade d'ouverture est précédée par un dièse.

52voto

Steve Weet Points 15395

Stephen Doyle réponse, en utilisant une technique connue sous le nom de "Chaîne d'interpolation" est correct, et probablement la solution la plus simple, mais il est une autre manière. En appelant un des objets to_s méthode que l'objet peut être converti en chaîne de caractères pour l'impression. Donc ce qui suit fonctionnera également.

puts " Total Revenue of East Cost: " + total_revenue_of_east_cost.to_s

7voto

edebill Points 3572

Pour votre exemple, vous voulez quelque chose de plus précis que la méthode to_s. Après tout, to_s sur un flotteur comprennent souvent plus ou moins de précision que vous souhaitez afficher.

Dans ce cas,

puts " Total Revenue of East Coast: #{sprintf('%.02f', total_revenue_of_east_coast)}"

peut-être mieux. #{} peut gérer n'importe quel morceau de code ruby, de sorte que vous pouvez utiliser sprintf ou de toute autre méthode de formatage vous le souhaitez.

5voto

Steve Wilhelm Points 3607

J'aime (voir la Classe String % pour les détails):

puts " Total Revenue of East Coast: " + "%.2f" % total_revenue_of_east_coast

0voto

user3515881 Points 1

Exemple bucle

(1..100).each do |i| puts "indice #{i} " end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X