Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 97 98 [99] 100 101 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#1471
,
|
|
|
|
Ок, арифметика. В каком месте дельфи расположены натуральные дроби? Где-то рядом с sqrt, возвращающей комплексное число, т.е. - нигде? Добавлено А никто и не говорит, что целочисленное. Я ожидаю, что / вернёт результат того типа, к которому была применена. |
|
Сообщ.
#1472
,
|
|
|
|
Цитата MyNameIsIgor @ Я ожидаю, что / вернёт результат того типа, к которому была применена. на каком основании? |
|
Сообщ.
#1473
,
|
|
|
|
Цитата korvin @ на каком основании? Потому, что я не ожидаю неявных кастов. |
|
Сообщ.
#1474
,
|
|
|
|
Цитата MyNameIsIgor @ Потому, что я не ожидаю неявных кастов. а я ожидаю, что деление ведет себя более как в реальной жизни |
|
Сообщ.
#1475
,
|
|
|
|
MyNameIsIgor, а чем плохо ввести две разных операции для целых: целочисленное деление и нецелочисленное деление? И значки для них разные? Проблем было бы гораздо меньше
|
|
Сообщ.
#1476
,
|
|
|
|
Цитата korvin @ а я ожидаю, что деление ведет себя более как в реальной жизни А до какой черты распространяется это "более"? Я опять же спрашиваю: где комплексные числа, где натуральные дроби? Если берётесь соответствовать математике, так и соответствуйте. До конца. А если мы всё же программируем на статически типизированном (желательно строго) языке, то таких финтов ушами быть не должно. |
|
Сообщ.
#1477
,
|
|
|
|
Давай небольшой ликбез. Просто, чтоб уменьшить количество подобных вопросов. Сразу предупреждаю, что для простоты не строго по Стандарту.
В C есть понятие преобразование типов операндов в выражении. Называется promotion, более-менее по-русски - продвижение. Применяется всегда, чтобы исключить совсем уж тупые варианты, которые понравятся ещё меньше. Например, было бы удивительно для ![]() ![]() VAR a, b:BYTE; BEGIN a := 200; b:=100; Write(a+b) END. |
|
Сообщ.
#1478
,
|
|
|
|
Цитата --Ins-- @ MyNameIsIgor, а чем плохо ввести две разных операции для целых: целочисленное деление и нецелочисленное деление? И значки для них разные? Проблем было бы гораздо меньше Ничем не плохо. Нельзя неявно использовать целые в операции с плавающей точкой. Ещё раз вам говорю: посмотрите на OCaml. |
|
Сообщ.
#1479
,
|
|
|
|
Цитата MyNameIsIgor @ Если берётесь соответствовать математике, так и соответствуйте. Любое даже самое умное высказывание можно довести до абсурда, если подходить к нему как к догме. Нельзя до конца соответствовать математике хотя бы потому, что разрядность ограничена. В данном же случае среди стандартных просто нет комплексного типа. Введи комплексный тип и функция корень сможет тебе вернуть математически правильное значение. У sqrt результат объявлен как Extended, так же как параметры у Sin, Cos и др |
|
Сообщ.
#1480
,
|
|
|
|
Цитата MyNameIsIgor @ А до какой черты распространяется это "более"? Я опять же спрашиваю: где комплексные числа, где натуральные дроби? Если берётесь соответствовать математике, так и соответствуйте. До конца. А если мы всё же программируем на статически типизированном (желательно строго) языке, то таких финтов ушами быть не должно. до любой, чем больше, тем лучше в моих любимых лиспах есть и нат.дроби, и комплексные числа искаробки Хаскелл обладает весьма строгой статической типизацией, но даже там / возвращает тип класса Fractional независимо от фактического типа операндов (операнды приводятся к тому же типу класса Fractional) |
|
Сообщ.
#1481
,
|
|
|
|
Я так думаю, если вы приближаетесь к математике, то b / c - это натуральная дробь. А нифига не вещественное. Кстати, а вещественное с какой точность выдаёт дельфи? Или в дельфи всего один вещественный тип?
|
|
Сообщ.
#1482
,
|
|
|
|
--Ins--, ты зачем с DesweR-ом профилем поделился? Поставить вопрос о доверии должности?
А если серьёзно, ... толстить ты что-то начал, --Ins--. |
|
Сообщ.
#1483
,
|
|
|
|
Цитата Qraizer @ С этой точки зрения int / int останется целочисленной операцией. Ты находишь это нелогичным? С этой точки зрения - нет. Я саму точку зрения нахожу нелогичной Тем более что существует альтернативная точка зрения, которая дает более ожидаемые результаты Добавлено Цитата Qraizer @ Поставить вопрос о доверии должности? Как к админам обратиться знаешь? Могу ссылку датьЦитата MyNameIsIgor @ Или в дельфи всего один вещественный тип? Нет, не один. Одинарная (single), двойная (double), расширенная (extended) |
|
Сообщ.
#1484
,
|
|
|
|
Цитата --Ins-- @ Нет, не один. Одинарная (single), двойная (double), расширенная (extended) Ну, и какую даст b / c? |
|
Сообщ.
#1485
,
|
|
|
|
Цитата MyNameIsIgor @ Ну, и какую даст b / c? Это определяется компилятором, а не языком. Компилятор наш преобразует в расширенную. Все расчеты вещественных идут в extended, а потом уже результат обрезается до нужной точности. Потому что для fpu (компилятор то в native-код компилирует) extended - это родной тип |