Size: a a a

2021 February 14

ВШ

Виталий Шанин... in supapro.cxx
Anatoly Shirokov
Тебе достаточно убрать целочисленное деление, приведя делимое к флоат
Это я понял, sum должен быть float, просто не догоняю, sum же целое число, но для нормального деления он должен быть вещественным.
источник

AS

Anatoly Shirokov in supapro.cxx
Anatoly Shirokov
Слава, если ты не прекратишь, я переведу тебя в режим ро
@SlavikMIPT не так все. Для задач студентов они должны освоить плавающую точку, понимать причины возникновения погрешностей и контролировать их
источник

AS

Anatoly Shirokov in supapro.cxx
Виталий Шанин
Это я понял, sum должен быть float, просто не догоняю, sum же целое число, но для нормального деления он должен быть вещественным.
При делении целого на целое применяется целочисленное деление, получаешь целое, которое после приводится к флоат
источник

ВШ

Виталий Шанин... in supapro.cxx
Anatoly Shirokov
При делении целого на целое применяется целочисленное деление, получаешь целое, которое после приводится к флоат
Ну, суть уловил, спасибо)
источник

AS

Anatoly Shirokov in supapro.cxx
Виталий Шанин
Ну, суть уловил, спасибо)
1/3 получил 0 и уже 0 привел к флоат
источник

ВШ

Виталий Шанин... in supapro.cxx
Anatoly Shirokov
1/3 получил 0 и уже 0 привел к флоат
Вот теперь точно понял
источник

s

std::slavik in supapro.cxx
источник

s

std::slavik in supapro.cxx
Anatoly Shirokov
@SlavikMIPT не так все. Для задач студентов они должны освоить плавающую точку, понимать причины возникновения погрешностей и контролировать их
так а чем тут помешал мой пример который как раз демонстрирует как эту погрешность можно контролировать
источник

MK

Mikhail Kalugin in supapro.cxx
std::slavik
так а чем тут помешал мой пример который как раз демонстрирует как эту погрешность можно контролировать
«Не вноси сумятицу в неокрепшие умы»
источник

AE

Alexey Egorov in supapro.cxx
А как быть окрепшим умам, которые не в курсе?
источник

AS

Anatoly Shirokov in supapro.cxx
std::slavik
так а чем тут помешал мой пример который как раз демонстрирует как эту погрешность можно контролировать
Если ты хотел кого-то чему-то научить, то рассказал бы о подходе принятым в условиях невозможности работать с плавающей точкой. О переводе вещественный чисел к целочисленным вычислениям за счет ввода масштабного коэффициента. А так твой пример звучит так "для суммы используй интеграл", но без каких-либо объяснений
источник

MK

Mikhail Kalugin in supapro.cxx
Alexey Egorov
А как быть окрепшим умам, которые не в курсе?
«Математика фиксированной точки» читать.
источник

AE

Alexey Egorov in supapro.cxx
Mikhail Kalugin
«Математика фиксированной точки» читать.
Спасибо.
источник

AE

Alexey Egorov in supapro.cxx
Mikhail Kalugin
«Математика фиксированной точки» читать.
А что это? Беглый гуглинг ничего не нашёл.
источник

AE

Alexey Egorov in supapro.cxx
Стандарт IEEE754 что ли?
источник

MK

Mikhail Kalugin in supapro.cxx
Идея очень простая. В финтехе например важно, чтобы была предсказуемость операций, но обычно плевать на миллионные доли. Работаем с копейками используя длинное целое, а потом приводим к рублям деля на сто.
источник

MK

Mikhail Kalugin in supapro.cxx
Alexey Egorov
А что это? Беглый гуглинг ничего не нашёл.
источник

AS

Anatoly Shirokov in supapro.cxx
Alexey Egorov
А что это? Беглый гуглинг ничего не нашёл.
Есть, например, тип "currency", который поддерживает вычисления с точность  до 4 знаков после запятой. Вместо хранения во флоате можно использовать long, умножив единицы на 1000 и проводить все вычисления с long, а когда надо представить делим на 1000 и получаем остаток от деления
источник

AE

Alexey Egorov in supapro.cxx
Теперь понял, спасибо.
источник

AS

Anatoly Shirokov in supapro.cxx
Alexey Egorov
Теперь понял, спасибо.
Это утрировано, здесь надо учитывать накопление ошибок для основных операций +, -, *, /
источник