我有一份报告,其中列出了总值,然后是括号中的变化.例如:
歌曲:45(上周+10)
所以我想将整数10打印为"+10",将-10打印为"-10"
现在我正在做
(song_change >= 0 ? '+' : '') + song_change.to_s
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
Way*_*rad 26
"%+d" % song_change
Run Code Online (Sandbox Code Playgroud)
String#%根据字符串中的打印说明符格式化右侧.打印说明符"%d"表示十进制aka.整数,并且添加到打印说明符的"+"强制始终打印相应的符号.
您可以在Kernel #sprintf或sprinf的手册页中找到有关打印说明符的更多信息.
您可以通过传入数组一次格式化多个事物:
song_count = 45
song_change = 10
puts "Songs: %d (%+d from last week)" % [song_count, song_change]
# => Songs: 45 (+10 from last week)
Run Code Online (Sandbox Code Playgroud)