2015-01-17 12 views
11

Ich frage mich, was der konventionelle Rails Weg UND Ruby Weg ist, ein "+" sybmol zu einer Zahl voranzustellen, wenn es positiv ist.Präfix Nummer mit "+" wenn es positiv ist - Ruby/Rails 4

Beispiel:

<%= @number #5 %> 

Should Ausgang:

+5 

standardmäßig negativ richtig angezeigt:

<%= @number #-3 %> 

Ausgänge:

-3 

Ich weiß, dass ich so etwas wie das follwing tun könnte:

<%= (@number > 0)? '+':'' %><%= @number %> 

Aber ich weiß nicht so. Was ist eine gute Möglichkeit, dies in beiden Ruby & Rails zu tun, oder für beide, wenn es das gleiche ist?

+0

Siehe http://stackoverflow.com/questions/20538670/how-to-extract-the-sign-of-an- integer-in-ruby für einen guten Vorschlag. Es gibt keine standardisierte/empfohlene Möglichkeit, das Zeichen für eine ganze Zahl in Ruby anzuzeigen. –

+1

Haben Sie vorher [Google] (http://zetcode.com/lang/rubtutorial/strings/) gefragt? :) –

+0

Ich bin sicher, Stack Overflow möchte, dass Benutzer sie anstelle von Zetcode besuchen. :) – karns

Antwort

27

Blick auf die sprintf method

sprintf("%+d", 123) 
1.9.3-p392 :005 > sprintf("%+d", 123) 
=> "+123" 
1.9.3-p392 :008 > sprintf("%+d", -123) 
=> "-123" 

Und in der Ansicht: -

<%= sprintf("%+d", 123) %> 
<%= sprintf("%+d", @number) %> 

Wenn @number wird eine positive Zahl sein dann ein + Zeichen erscheint oder wenn es eine negative Zahl ist ein - Zeichen wird in der Ansicht angezeigt.

+0

Das ist schön und sauber, ich mag es. So, wie es aussieht, gibt es wirklich keine Standardmethoden in Rails oder Ruby dafür ... – karns

+0

'sprintf ("% +. 2f ", 0.1234)' zu '+ 0.12' für float. – hlcs

+1

sprintf ("% + d", 0) => "+0" –

Verwandte Themen