Форум
Исходники
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, Marty, Вы писали: M>Здравствуйте, cppguard, Вы писали: C>>Зачем хранить знаменатель и другие выводимые поля в памяти, если знаменатель можно сделать всегда равным степенью двойки и хранить в виде параметра шаблона? Какой вообще смысл имеют знаменатели отличные от степеней двойки? M>Тип называется Decimal, поэтому и знаменатель десятичный. Максимально десятичная семантика. M>denum в принципе можно было бы и не хранить, а вычислять по месту из precision, это из разряда преждевременной оптимизации, просто по опыту решил, что это будет лучше. Ну и все равно, раз num - 64 бита, а для precision много не надо, то denum можно и кешировать в 32ух битной переменной. M>Тут, имхо, можно было обойтись без DecimalDenumerator, и обойтись только DecimalPrecision и Decimal, ну тут хз, я предпочитаю прослойки делать почаще. M>В качестве параметра шаблона точность хранить не вариант - точность у меня определяется в рантайме, и у меня можно в арифметических выражениях оперировать величинами разной точности, в результате возвращается результат с точностью, максимальной из той, что у есть операндов. M>Я float/double конверсию специально сделал через строку - переложил ответственность за точность представления на стандартную либу std - "пусть [s]лошадь[/s] думает, у неё голова большая". Потом можно будет и продумать получше этот нюанс, но пока float/doudle просто из кода пропали совсем. M>Выходы за диапазоны (при всяких арифметических операциях в том числе) тоже не проверял - для финансовых расчётов всё равно никому верить нельзя, всё самому надо проверять, и входные данные, и выходное число. Тут наверное надо какие-то limits/traits допилить, чтобы было с чем сравнивать
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …