Ruby BigDecimal : 增加保存在数据库中的初始数字的数量
Ruby BigDecimal : increase number of initial digits saved in database
我的 Rails 4 应用程序遇到 Ruby BigDecimal 问题。
我在事物模型中有一个 "price" 属性,class 是 BigDecimal。每当我创建或更新一个事物时,我都想用严格的两位小数来保存 "price" 属性(例如“0.00”、“10.00”、“10.10”、“10.01”)。
但默认情况下,如果不需要两位,则它只保存一位十进制数字。这是我插入的内容和当前保存的内容:
"0" => "0.0" (instead of "0.00")
"10" => "10.0" (instead of "10.00")
"10.1" => "10.1" (instead of "10.10")
"10.01" => "10.01" (OK)
我不只是想显示两位小数的"price"属性(可以使用"%.2f" % price
来完成),我想保存两位小数的"price"属性我的数据库中的数字。有什么办法吗?
非常感谢您的帮助。
您所描述的内容在我看来纯粹是为了展示目的。我不知道有什么方法可以将小数保存到具有特定小数位数的数据库中,这些小数实际上不会增加精度,除非您将它们另存为字符串。
在我看来,您最好在 Thing 模型上创建一个方法,该方法将 return 价格格式化为您想要的格式。
我的 Rails 4 应用程序遇到 Ruby BigDecimal 问题。
我在事物模型中有一个 "price" 属性,class 是 BigDecimal。每当我创建或更新一个事物时,我都想用严格的两位小数来保存 "price" 属性(例如“0.00”、“10.00”、“10.10”、“10.01”)。
但默认情况下,如果不需要两位,则它只保存一位十进制数字。这是我插入的内容和当前保存的内容:
"0" => "0.0" (instead of "0.00")
"10" => "10.0" (instead of "10.00")
"10.1" => "10.1" (instead of "10.10")
"10.01" => "10.01" (OK)
我不只是想显示两位小数的"price"属性(可以使用"%.2f" % price
来完成),我想保存两位小数的"price"属性我的数据库中的数字。有什么办法吗?
非常感谢您的帮助。
您所描述的内容在我看来纯粹是为了展示目的。我不知道有什么方法可以将小数保存到具有特定小数位数的数据库中,这些小数实际上不会增加精度,除非您将它们另存为字符串。
在我看来,您最好在 Thing 模型上创建一个方法,该方法将 return 价格格式化为您想要的格式。