0 / 0 / 0
Регистрация: 07.11.2019
Сообщений: 9
|
|
1 | |
Зачем нужно приводить к double08.12.2019, 19:43. Показов 2251. Ответов 19
Метки нет (Все метки)
0
|
08.12.2019, 19:43 | |
Ответы с готовыми решениями:
19
Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)" Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? Зачем нужно u--? |
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
|
|
08.12.2019, 19:57 | 2 |
Это тоже самое что и double()
Оно трансформировало выражение int / int в double / int Благодаря перегрузке функций выражение int / int вернуло бы целое, без остатка Но double / int вернёт дробное значение (double)summa / vsego - устаревший вид Чаще можно увидеть double(summa) / vsego
1
|
0 / 0 / 0
Регистрация: 07.11.2019
Сообщений: 9
|
|
17.12.2019, 15:57 [ТС] | 3 |
Спасибо!
0
|
4023 / 2569 / 430
Регистрация: 09.09.2017
Сообщений: 11,483
|
|
18.12.2019, 10:22 | 4 |
Не берусь утверждать наверняка, но вроде бы (double)x это Си-стиль явного приведения, а double(x) - плюсовый. Причем визуально второй вариант похож вообще на конструктор объекта.
1
|
18.12.2019, 10:29 | 5 |
2
|
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
|
|
18.12.2019, 20:27 | 6 |
0
|
Вездепух
12807 / 6680 / 1799
Регистрация: 18.10.2014
Сообщений: 16,917
|
|
18.12.2019, 23:33 | 8 |
Никак. Без точной информации о типе
summa и vsego ваш вопрос полностью бессмыслен.Что такое double() ???Откуда вы знаете, что это int / int?
0
|
19.12.2019, 09:51 | 9 |
Строго говоря, есть ещё и статистика по вопросам от начинающих. Поэтому конкретно в данном случае можно смело ванговать на тему того, что переменные summa и vsego имеют целочисленный тип
0
|
4023 / 2569 / 430
Регистрация: 09.09.2017
Сообщений: 11,483
|
|
19.12.2019, 10:03 | 10 |
А можно зайти и с другой стороны: поскольку приведение не упало с ошибкой, тип данных числовой. А раз оно вообще понадобилось, он был целочисленным.
0
|
Вездепух
12807 / 6680 / 1799
Регистрация: 18.10.2014
Сообщений: 16,917
|
|
19.12.2019, 10:18 | 11 |
Нет, конечно. Приведение запросто может понадобиться и для
float / float .В том то и дело, что можно, но не нужно. Это не вопрос "вангования" на тему того, что хотел спросить начинающий. Это вопрос обучения начинающих умению правильно задавать вопросы. В этом, кстати, содержится 90% ответа.
0
|
19.12.2019, 10:29 | 12 |
Есть такие начинающие, которым действительно интересно программирование. А есть такие, которым просто нужно спихнуть зачёт. По постановке вопроса их можно отличить. Тратить время на обучение начинающих имеет смысл только тогда, когда начинающему это действительно нужно
Другое дело, что независимо от того, что из себя представляет ТС, тему будут читать в том числе и те, кто является начинающим и кто готов тратить время на обучение. Вот здесь с тобой соглашусь - ради этого действительно имеет смысл потратить время
0
|
Вездепух
12807 / 6680 / 1799
Регистрация: 18.10.2014
Сообщений: 16,917
|
|
19.12.2019, 10:35 | 13 |
Да, но предоставлять ответы, ориентированные именно на желающих "спихнуть зачёт" - лишь замусоривать ресурс. Тем более что примерно в 99 случаях из 100 ответы этим желающим уже много раз предоставлялись. Пусть не ленятся и ищут сами.
Именно. В современном интернет-сообществе акцент уже давно сдвинулся с предоставления ответа непосредственному вопрошавшему на обсуждение темы со всеми присутствующими и предоставление ответа тем, кто придет позже. И это правильно.
0
|
4023 / 2569 / 430
Регистрация: 09.09.2017
Сообщений: 11,483
|
|
20.12.2019, 09:59 | 14 |
Разумеется нет. Во-первых, вывод идет все равно с форматом "%f", во-вторых, функции с переменным числом параметров сами приводят типы. Единственный вариант - слабая попытка повысить точность, но и то спохватываться последнем этапе бессмысленно.
0
|
Вездепух
12807 / 6680 / 1799
Регистрация: 18.10.2014
Сообщений: 16,917
|
|
20.12.2019, 10:46 | 15 |
При чем здесь все это вообще?
Именно об этом идет речь. Ничего "слабого" в повышении точности с float до double , разумеется, нет. Это громадное повышение точности.Смешно. Это примерно то же самое, как на популярный вопрос начинающих о том, почему 1/2 дает 0 , ответить "Чувак, можно, конечно, выполнить плавающее деление, но спохватываться на последнем этапе бессмысленно. 0 значит 0 . Привыкай."
0
|
4023 / 2569 / 430
Регистрация: 09.09.2017
Сообщений: 11,483
|
|
20.12.2019, 12:28 | 16 |
При том, что конвертация float->double при передаче в printf происходит автоматически, без явного указания.
Громадным оно было бы если бы все расчеты изначально велись в double. А так говорить о повышении точности просто смешно. О, мастер кривых аналогий в действии! Давай, чем еще повеселишь?
0
|
TheCalligrapher
|
20.12.2019, 19:21
#17
|
0
|
4023 / 2569 / 430
Регистрация: 09.09.2017
Сообщений: 11,483
|
|
21.12.2019, 11:12 | 18 |
Не вижу смысла особо комментировать высказывания человека, который не видит разницы int->float и float->double. Тем более в операции деления, где потери точности дробных чисел минимальны.
А, так ты просто не понял простейшую цепочку рассуждений. Хорошо, объясню. В 14 посте было сделано два предположения зачем можно пытаться привести float к double при передаче функции printf: явно указать выводимый тип (независимо от реальной точности), либо повысить точность при операции деления. Опровергаем первый вариант: при передаче дробных чисел в функцию с переменным числом аргументов происходит неявное преобразование до double. Опровергаем второй вариант: операции умножения и деления для дробных чисел гораздо меньше влияют на точность, чем операции сложения*. Мало того, при выводе редко учитывается больше 2-4 значащих цифр. На практике это просто не нужно. Так что TheCalligrapher, хватит уже портить воздух и спорить на пустом месте, тем более когда и спор-то не нужен: твои высказывания никто не оспаривал, пока ты сам не полез позориться. Ну тут уж кто еще тебе виноват. -- *) Для новичков (TheCalligrapher'у -то это не поможет, он целые числа от дробных не отличает): дробные числа в памяти машины хранятся в формате m+2e. Для операций сложения (в т.ч. вычитания) двух чисел приходится приводить их степени к одному значению, то есть сдвигать значащие цифры вправо. Те биты, которые были младшими, приходится отбросить. По этой причине сложение дробных чисел приводит к значительному снижению точности. А вот при умножении и делении это не требуется: степени просто складываются или вычитаются отдельно от значащих цифр. С целыми числами ситуация другая. В них хранятся только значащие цифры, никакие степеней. Соответственно, сложение и вычитание выполняются без всяких сдвигов, то есть без потери точности (если не допускать переполнения, конечно). Умножение целого на целое тоже обходится без потери точности. А вот с делением хуже, причем просто потому что числа целые и хранить дробную часть не умеют.
0
|
2489 / 1147 / 707
Регистрация: 25.04.2016
Сообщений: 3,294
|
||||||
21.12.2019, 14:40 | 19 | |||||
Nik_121, и правда, зачем?
AndryS1, в си нет перегрузок функций. Да и формат %f ожидает float, а не double.
0
|
Вездепух
12807 / 6680 / 1799
Регистрация: 18.10.2014
Сообщений: 16,917
|
|
22.12.2019, 07:11 | 20 |
В функции
printf форматы %f и %lf эквивалентны и оба ожидают double . Функция printf не может ожидать float потому, что значения типа float невозможно передать через variadic параметры. Использовать %f для float аргументов, а %lf для double аргументов - хороший тон, но это не обязательно.
0
|
22.12.2019, 07:11 | |
22.12.2019, 07:11 | |
Помогаю со студенческими работами здесь
20
Зачем в методе простой итерации (линейные системы) приводить к диагональному преобладанию ? Зачем в .NET в 2014 г. строгая типизация? Зачем нужно писать Convert.ToInt32(), ToString(), Int32.Parse()? Ругается на строчку double[] wArray = new double[n];, double[] w = new double[n]; Зачем нужно ООП? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Какой язык программирования лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
|
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
|
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
|
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
|
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
|
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
|
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
|
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|