Ошибки, баги, вопросы - страница 3269

 
Nikolai Semko #:

а что мешает массив в качестве параметра передать?

хоть массив структур, в которых есть свои массивы структур.

Все параметры в один массив не запихнуть т.к. там типы такие: double, int, bool, ENUM_TIMEFRAMES, color и т.д.

Можно конечно кое-как ухитриться, но это напрягает и ограничение в 63 параметра само по себе выглядит странно - не 64/128/256/512/1024, а 63

 
имеет ли смысл на нейросетивике поменять  double на float для ускорения расчетов , а то при смене таймфрейма тормоза достали
 
Sunriser #:

Все параметры в один массив не запихнуть т.к. там типы такие: double, int, bool, ENUM_TIMEFRAMES, color и т.д.

Можно конечно кое-как ухитриться, но это напрягает и ограничение в 63 параметра само по себе выглядит странно - не 64/128/256/512/1024, а 63

Структуры могут содержать внутри себя любые типы и массивы
 
Sunriser #:

Выходит, что максимум 63 параметра, я в шоке. Мне вот реально не хватило)


А я в шоке от того, что кто-то реально столько параметров пытается методу передать. Вы не запутаетесь в них? Больше 3-х параметров уже нехорошо. Если требуется передать много данных, то их надо упаковать во что-нибудь типа структуры, или объекта, или массива структур или объектов.
 
ruslan #:

эта ошибка во всех языках такая ??? 8 вместо 1 ?

Да, на всех языках.

Емкости точности у float недостаточно для точного хранения числа  123 456 788 и оно представляется приблизительно.

Об этом и компилятор предупреждает:

truncation of constant value

В финансовой математике float категорически не рекомендуется использовать. Скорости по сравнению с double по факту не дает, а потеря точности запредельная.

Разве что при переходе в нейросети при полностью осознаваемых последствиях и лимитах, float является вынужденной мерой исключительно из-за ограничений графических карт.

 
Renat Fatkhullin #:

Да, на всех языках.

Емкости точности у float недостаточно для точного хранения числа  123 456 788 и оно представляется приблизительно.

Об этом и компилятор предупреждает:

В финансовой математике float категорически не рекомендуется использовать. Скорости по сравнению с double по факту не дает, а потеря точности запредельная.

Разве что при переходе в нейросети при полностью осознаваемых последствиях и лимитах, float является вынужденной мерой исключительно из-за ограничений графических карт.

ну тоесть идет при расчетах накопление ошибки ???

 
Sergey Gridnev #:
А я в шоке от того, что кто-то реально столько параметров пытается методу передать. Вы не запутаетесь в них? Больше 3-х параметров уже нехорошо. Если требуется передать много данных, то их надо упаковать во что-нибудь типа структуры, или объекта, или массива структур или объектов.

А чем плохо больше 3х параметров?

 
Sunriser #:

А чем плохо больше 3х параметров?

Тем, что очень легко ошибиться в параметрах.
 
ruslan #:

ну тоесть идет при расчетах накопление ошибки ???

В общем да, но в данном частном случае идёт прямая потеря значения младших разрядов.

Грубо, для понимания: представим, что у нас есть система, которая может работать с тремя десятичными разрядами (мантиссы).

Число 999 будет представлено как 9.99 * 10²

1000 - как 1.00 * 10³

1001 - тоже как 1.00 * 10³

ибо разрядов всего три.

С float примерно так же, только разряды - двоичные.

 
ruslan #:

ну тоесть идет при расчетах накопление ошибки ???

Да, любые вычисления во float генерируют запредельные уровни погрешностей.  На любом языке, в любом случае.

Использование float допустимо только в тех осознанных случаях, где накопление ошибки не важно. Да и то, в небольших диапазонах значений.

Используйте double.