Does Ruby Round or Truncate
我在使用Ruby on Rails 4.2.3。如果我在一个只允许两位小数的数据库字段中存储一个有五位小数的数字,那么这个数字是被截断的还是自动四舍五入的?
10.12565是10.12还是10.13?
两者的数据库字段类型都是十进制数据类型。
基于文档:http://www.postgresql.org/docs/9.0/static/datatype-numeric.html
在第8.1.2节中。任意精度数
它们将自动旋转:
If the scale of a value to be stored is greater than the declared
scale of the column, the system will round the value to the specified
number of fractional digits. Then, if the number of digits to the left
of the decimal point exceeds the declared precision minus the declared
scale, an error is raised.
我建议使用以下方法将数据库设置为该字段的预期结果:http://www.postgresql.org/docs/8.1/static/functions-math.html
然后编写单元测试以确保获得预期的结果。