Страница 2 из 2

Re: Какой то бред с арифметикой

СообщениеДобавлено: 26 ноя 2018, 08:38
jetyb
Этот самый мозголомный и странный "систайл" когда при делении чисел (неважно, целых или дробных) получается целое, когда во многих (да всех) языках при делении получается именно дробное..

И какое дробное тут должно в контексте деления int получиться? double, float, или может быть half, если я пишу на видеокарте. Неоднозначность.
Давайте еще комплексные числа при нахождение логарифма отрицательных чисел будем возвращать. Арифметические операции должны быть замкнутыми относительно своего класса чисел.

Еще, в арифметике float максимально представимое целое число: 2^24 (16 000 000). Числа большие его уже неизбежно будут представлены с погрешностью. Максимальное целое число в int32 - 2^31. Если представлять деление больших целых чисел как действительное, то возникнут еще более трудноуловимые баги с погрешностями.

Re: Какой то бред с арифметикой

СообщениеДобавлено: 27 ноя 2018, 00:39
Woolf
Синтаксис:
Используется csharp
И какое дробное тут должно в контексте деления int получиться?

Разумеется, float, он же single как тип, предоставляемый и обрабатываемый процессором и видеокартой. Другие дробные от лукавого и узкоспециализированы.
Неоднозначность - это int в результате. float - это совершенно естественный и интуитивно ожидаемый результат. Если бы я хотел получить int, я бы использовал специальное целочисленное деление, как в большинстве других языков (не из семейства Си). Но, увы, странная логика Ритчи продолжает нас преследовать даже спустя 60 лет после создания сей фичи. Так-то они там много головоломной чуши нагородили, и она дефакто стала стандартом. Почему-то. Хотя, если подумать, то бред же полный.