【问题标题】:What do these curly braces mean?这些花括号是什么意思?
【发布时间】:2013-09-07 15:00:33
【问题描述】:

我正在学习 Rails 教程,遇到了这一行 rails g model product name decimal:{7, 2}

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

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

【问题讨论】:

标签: sql ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

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

上面写着:

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

【讨论】:

  • 哦,我明白了。我在看精度错误。谢谢!顺便说一句,本是最好的名字;)
【解决方案2】:

是小数域的precision(总位数)和scale(小数点后的位数)。

来自rails g model -h

对于十进制,将使用花括号中用逗号分隔的两个整数 精度和规模: `rails generate model product price:decimal{10,2}`

来自MySQL docs

DECIMAL 列的声明语法是 DECIMAL(M,D)。这 MySQL 5.1 中参数的取值范围如下:

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

  • D 是小数点右边的位数( 规模)。它的范围为 0 到 30,并且不得大于 M

【讨论】:

    猜你喜欢
    • 2020-11-05
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    相关资源
    最近更新 更多