我正在尝试使用number_to_currency
格式化rails中的一列数字。我希望用()s显示负数 - 使用negative_format
选项很容易。但是,当我这样做时,一列数字中的小数点不对齐。我想为正数的格式添加一个尾随空格 - %u%n
,只是我不知道该怎么做 - 有人能给我正确的格式在尾随空格中吗?
答案 0 :(得分:1)
有几种方法可以用一点空间填充正数:
第一种方法将演示文稿与内容混合在一起,但具有使用任何字体大小(或用户调整大小的字体)的优势。使用第二种解决方案,您的HTML更清晰,在性能良好的浏览器中,一切都会运行良好,但您的里程数会因现代化程度不同而不同。
这是第一个选项的快速实现:
def pad_positives(number_string)
unless number_string[0,1] == '('
number_string += '%nbsp;'
end
number_string
end
您可以将其放入适当的帮助文件中,然后在视图中执行以下操作:
<%= pad_positives(number_to_currency(number, ...)) %>
请注意,此函数需要一个字符串,因此如果您传递一个数字,它将会阻塞。希望这有帮助!
答案 1 :(得分:0)
假设你的循环中有变量amount
:
<td class="amount">
<%= (amount >= 0) ? "#{number_to_currency(amount)} " : "(#{number_to_currency(amount)})" %>
</td>
在你的CSS中:
.amount {
font-family:monospace;
}