我可以在BigDecimal中包装方程式吗?

时间:2014-07-09 15:48:17

标签: ruby bigdecimal

@amount ||= BigDecimal( @price * ( @tax_percentage / 100) ).round(2)

可以像这样在BigDecimal中包装等式吗?或者我是否需要将每个组件投射到BigDecimal

1 个答案:

答案 0 :(得分:2)

与使用float类似,您需要将其中一个元素投射到BigDecimal,以使整个值返回BigDecimal

@amount ||= (@price * ( BigDecimal(@tax_percentage) / 100) ).round(2)

在上面的示例中,我将@tax_percentage转换为BigDecimal而不是@price,否则,如果原来@tax_percentage是整数,请将其除以{{1}将导致数据丢失 - 结果将是整数...

100