почему результат Module.sum (: field) является целым числом? - PullRequest
1 голос
/ 21 января 2011
create table test_tables (
id number(38) primary key,
name varchar2(50),
age number(5),
gender varchar2(10),
point number(5,2)
);
insert into test_tables values (1,'name1',20,'male',80.5);
insert into test_tables values (2,'name2',21,'female',60.5);
insert into test_tables values (3,'name3',23,'male',90.5);
insert into test_tables values (4,'name4',19,'male',79.5);
insert into test_tables values (5,'name5',18,'female',80.5);

Результат TestTable.sum (: точка) равен 391,
, почему не 391,5?
Я проверяю rdoc, есть описание:

The value is returned with the same data type of the column

Но в моемcase, тип 'point' - это число (5,2).
Это не число с плавающей точкой?

1 Ответ

3 голосов
/ 21 января 2011

Я не особенно знаком с SQLite, но я думаю, что вы должны использовать тип DECIMAL в операторе создания таблицы.Подробнее:

Отображение типов SQLite Active Record
Типы SQLite

Будьте осторожны с в этой проблеме .Кажется, что драйвер sqlite3 ruby ​​настаивает на создании объектов Float ruby, а не BigDecimal для результатов запроса DECIMAL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...