Pull to refresh

Comments 11

Что может быть прекраснее:

declare
  var1 number := 0.0000007;
  var2 number := 1;
begin
  dbms_output.put_line(to_char(var1 * var2));
end;

-- result: .0000007
Эх… если бы СУБД выбирали разработчики. Мечты, мечты…
1) 0.0[29]7
2) 0.0[30]7
select 0.000000000000000000000000000007*1;

-- result 0.000000000000000000000000000007

select 0.0000000000000000000000000000007*1;

-- result 0.000000000000000000000000000001


mysql 5.5.34
Потому что система банковская, а деньги во float считать нельзя, ибо там появляются другие проблемы округления.
Во всех виденных мною банковских системах все деньги хранились в целых числах. В виде стотысячных единиц. И никаких проблем с округлениями — что в Оракле, что в МС СКЛ :)
Не все числа можно сделать целыми. Банковская система — это не только деньги, а еще и проценты и алгоритмы их вычисления. А в алгоритмах присутствует возведение в дробную степень, деление и другие операции.
А вы попробуйте модные ныне биткоины хранить в целых числах :)
«Ви-таки будете смеяться», но они в целых числах и хранятся :) Об этом в доке для разработчика написано прямым текстом.
Sign up to leave a comment.

Articles