前缀号码带"+"如果是正数 - Ruby/Rails 4

kar*_*rns 14 ruby ruby-on-rails

我想知道传统的Rails方式和Ruby的方法是将一个"+"sybmol添加到数字中,如果它是正数的话.

例:

<%= @number #5 %>
Run Code Online (Sandbox Code Playgroud)

应输出:

+5
Run Code Online (Sandbox Code Playgroud)

默认情况下,负数将正确显示:

<%= @number #-3 %>
Run Code Online (Sandbox Code Playgroud)

输出:

-3
Run Code Online (Sandbox Code Playgroud)

我知道我可以做类似下面的事情:

<%= (@number > 0)? '+':'' %><%= @number %>
Run Code Online (Sandbox Code Playgroud)

但我不喜欢那样.在Ruby和Rails中执行此操作的好方法是什么,或者两者都是相同的?

Sha*_*que 37

看看sprintf方法

sprintf("%+d", 123)
1.9.3-p392 :005 > sprintf("%+d", 123)
=> "+123" 
1.9.3-p392 :008 > sprintf("%+d", -123)
=> "-123" 
Run Code Online (Sandbox Code Playgroud)

在视图中: -

<%= sprintf("%+d", 123) %>
<%= sprintf("%+d", @number) %>
Run Code Online (Sandbox Code Playgroud)

如果@number是正数,+则会出现一个符号,如果是负数,则-符号将出现在视图中.

  • sprintf("%+ d",0)=>"+ 0" (2认同)