@amount ||= BigDecimal( @price * ( @tax_percentage / 100) ).round(2)
可以像这样在BigDecimal
中包装等式吗?或者我是否需要将每个组件投射到BigDecimal
?
答案 0 :(得分:2)
与使用float
类似,您需要将其中一个元素投射到BigDecimal
,以使整个值返回BigDecimal
@amount ||= (@price * ( BigDecimal(@tax_percentage) / 100) ).round(2)
在上面的示例中,我将@tax_percentage
转换为BigDecimal
而不是@price
,否则,如果原来@tax_percentage
是整数,请将其除以{{1}将导致数据丢失 - 结果将是整数...
100