为number_with_precision添加类

时间:2018-02-12 11:45:57

标签: ruby-on-rails ruby sass

我有一个代码,显示价格:

def value
  h.number_with_precision(object.value, precision: 2,strip_insignificant_zeros: false)
end

我将此值放在haml%b= #{number.value}

例如:显示价格&#34; 1234.02&#34;在<b/>内,我需要一些样式来#34; .02&#34;。如何将精度放在span内?

编辑: Ruby字符串内置了格式化程序。无需使用任何类。 只需使用"%.2f" % #{number.value}

即可

2 个答案:

答案 0 :(得分:1)

您必须将number.value与'。'分开。作为分隔符,并像

一样使用它
full_value = number.value.to_s.split('.')

haml: %b #{full_value[0]}.
        %span #{full_value[1]}

答案 1 :(得分:-1)

由于你没有剥离无关紧要的零,你最终需要格式化3个数字(假设你包括小数位)。

你可以做到

number.value.to_s[0..-4]

除了最后3个字符串之外,它将为您提供字符串中的所有字符,然后

number.value.to_s.last(3)

要返回要单独格式化的部分

如果您不想格式化小数点,只需要分隔最后2个字符:

number.value.to_s[0..-3]
number.value.to_s.last(2)

然后,您可以根据需要格式化这些