|
4 / 4 / 0
Регистрация: 25.09.2010
Сообщений: 134
|
|||||||||||||||||||||
Что лучше float(1) или (float)1?20.09.2024, 07:57. Показов 2281. Ответов 26
Метки нет (Все метки)
Нужно вычислить чему равна дробь 1/2
вычисление в лоб дают результат 0, то есть cout<<1/2<<endl; выводит 0 как делать лучше
0
|
|||||||||||||||||||||
| 20.09.2024, 07:57 | |
|
Ответы с готовыми решениями:
26
опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing Какой тип данных лучше подойдет для приложения, которое делит числа int или float? Чем отличаются float преобразования (float)var от float(var) |
|
434 / 156 / 28
Регистрация: 12.12.2020
Сообщений: 1,253
|
||
| 22.09.2024, 22:26 | ||
|
(float)(2*5/3*2) А если одну из переменных int перевести во float сразу, то и все дальнейшие вычисления будут как с float, то есть компилятор сразу int будет переводить во float и соответсnвенно все вычисления и результаты будут с дробями (float)2*5/3*2
0
|
||
|
Вездепух
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,237
|
|||
| 22.09.2024, 22:51 | |||
|
В обоих ваших примерах (float)(2*5/3*2) и (float)2*5/3*2 используется только первый вариант преобразования, т.е. (float) expression. Второй вариант преобразования float(expression) вы нигде не использовали вообще. Поэтому и возникает вопрос: почему вы преподнесли ваши рассуждения в сообщении #16 как "разницу между двумя вариантами преобразования"?
0
|
|||
|
6793 / 2290 / 348
Регистрация: 10.12.2013
Сообщений: 7,901
|
|
| 22.09.2024, 22:52 | |
|
0
|
|
|
434 / 156 / 28
Регистрация: 12.12.2020
Сообщений: 1,253
|
||
| 22.09.2024, 23:01 | ||
![]() я наверно немного не так выразился. Если писать float (expression) то сначала вычисляется выражение а потом только меняется тип, а если (float)expression то expression "разбивается" на элементы и приведение типов "наступает" до вычисления. Я про это.
0
|
||
|
Вездепух
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,237
|
|||
| 22.09.2024, 23:56 | |||
|
Вы изначально вели речь о разнице между вариантами преобразования (float) expression и float(expression). А в этих примерах в обоих случаях используется один и тот же вариант - первый. Как это ваше "ответы разные" может относиться к "разнице между вариантами преобразования" если вариант преобразования и там и там использован один и тот же? ¯\_(ツ)_/¯(float)expression это expression никак не может "разбиваться". Если оно "разбивается", то это значит, что уже изначально не было никакого expression.Например в записи (float) 1 / 2 нет "выражения" 1 / 2. Синтаксические правила разбора выражений языка С++ говорят, что составными частями здесь являются (float) 1, оператор / и 2. То есть такой части как 1 / 2 здесь нет и никогда не было.--- Также, в сообщении #16 вы пишете все "с точностью до наоборот". Там вы написали, что именно в "(float)expression - вычисляется выражение и только потом его результат приводится к float". А здесь вы вдруг пишете "Если писать float (expression) то сначала вычисляется выражение а потом только меняется тип". ¯\_(ツ)_/¯
1
|
|||
|
6793 / 2290 / 348
Регистрация: 10.12.2013
Сообщений: 7,901
|
|||||||||||
| 25.09.2024, 15:09 | |||||||||||
|
Приличным решением являлось бы использование специального оператора для целочисленного деления,
Tрадиционно им является div
Но приличия - это не про "C"
0
|
|||||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 25.09.2024, 16:18 | ||
|
А если используете дробные, то и будет ваши 0,5 Добавлено через 33 минуты хюыю: плюс, в прикладном программировании, целочисленное деление намного чаще используется, в любом случае, в строго типизированных ЯП типы нужно различать. Добавлено через 2 минуты зызызызы: никто не отменял : div
0
|
||
| 25.09.2024, 16:18 | |
|
Помогаю со студенческими работами здесь
27
Ошибка: недопустимые операнды для двоичного выражения ('float' and 'float') cannot convert `float' to `float*. Почему так происходит? invalid types `float[float]' for array subscript Неправильное приведение void* к *float а далее к float
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|