0

我正在完成一个 Rails 教程,并遇到了这条线rails g model product name decimal:{7, 2}

最后的花括号是什么意思?他们在做什么?

最初,我认为他们强制使用浮点数达到一定的精度,但事实证明这是错误的。我可以将小数设为 10 位长,小数会达到千分位。

4

2 回答 2

1

它是小数字段的精度(总位数)和小数位数(小数点后的位数)。

来自rails g model -h

对于十进制,将使用花括号中用逗号分隔的两个整数
精度和规模:

    `rails generate model product price:decimal{10,2}`

来自MySQL 文档

列的声明语法DECIMALDECIMAL(M,D). MySQL 5.1 中参数的取值范围如下:

  • M是最大位数(精度)。它的范围是 1 到 65。(旧版本的 MySQL 允许的范围是 1 到 254。)

  • D是小数点右侧的位数(刻度)。它的范围是 0 到 30,并且不能大于M

于 2013-09-07T16:33:49.970 回答
1

请参阅例如: - http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html

那里说:

为清楚起见:精度是有效位数,而小数位数是小数点后可以存储的位数。例如,数字 123.45 的精度为 5,小数位数为 2。精度为 5,小数位数为 2 的小数的范围可以从 -999.99 到 999.99。

于 2013-09-07T15:05:24.603 回答