我试图在rails中格式化一列数字-使用number_to_currency。我想用()s显示负数-这很容易使用negative_format选项。然而,当我这样做时,一列数字中的小数点并没有排成一行。我想在正数格式中添加一个尾随空格-%u%n,只是我不知道该怎么做-有人能给我正确的尾随空格格式吗?

最佳答案

有两种方法可以在正数上加一点空格,或者:
使用fixed width font和不间断空格 
将类应用于正数的封闭元素(或换行),然后使用内部填充在右侧添加空格。
第一种方法将表示与内容混合在一起,但具有使用任何字体大小(或用户调整大小的字体)的优点。使用第二种解决方案,您的html会更干净,在性能良好的浏览器中,一切都会很好地工作,但是您的里程数会随着不太现代的浏览器而变化。
下面是第一个选项的快速实现:

def pad_positives(number_string)
  unless number_string[0,1] == '('
    number_string += '%nbsp;'
  end
  number_string
end

您可以将其放到相应的帮助程序文件中,然后在视图中执行以下操作:
<%= pad_positives(number_to_currency(number, ...)) %>

注意这个函数需要一个字符串,所以如果你给它一个数字,它会窒息。希望这有帮助!

关于ruby - Rails格式为正数和负数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7729820/

10-11 15:43