![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]() Код:
Введите число: 1000 Квадратный корень равен 31.622777 Подскажите пожалуйста! Почему тип данных double? если пользователь вводит целочисленное число, 1000? ![]() |
![]() |
![]() |
![]() |
#2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
А что мешает пользователю ввести дробное число?
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#3 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
А что если пользователь захочет ввести не целое число?
Рациональные числа это более широкий класс чисел. Значит мы можем решить более широкий класс задач тем более с минимальным числом усилий. А вообще это ещё древние торговцы заметили что если решить задачу в символьном виде выписав конечную формулу, то можно быстро решать целые классы арифметических задач при этом сокращая число операций. Так и появилась наука математика наука о символах, а не о числах. А работа с числами это арифметика. А вот сейчас программисты пользуются этим тайным знанием торговцев для написания своих программ.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]()
Arigato, Ну разве не должна быть переменная типа int если пользователь вводит 1000? Я лишь хочу понять почему когда пользователь вводит целочисленное число почему не создать под него соответственную переменную с типом int? Как целочисленное число может содержаться в переменной и быть другого типа если пользователь ввел 1000?
Последний раз редактировалось bITA666; 25.03.2020 в 14:52. |
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 04.02.2011
Сообщений: 4,702
|
![]()
Потому что sqrt в принципе заточена под работу с вещественными числами. Если даже ввести целое число, программа в качестве аргумента берёт его вещественный эквивалент. Если так уж хочется int -> int, результат можно усечь или округлить до ближайшего целого. В Делфи для этого существуют функции Trunc и Round, в ++ не помню - кажется, достаточно просто переслать double в int.
Цитата:
https://ru.wikipedia.org/wiki/Число_с_плавающей_запятой - читать Цитата:
А может, это троллинг? Такой уровень непонимания - запредельно. Последний раз редактировалось digitalis; 25.03.2020 в 20:37. |
||
![]() |
![]() |
![]() |
#6 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
Так пользователь может ввести и другое число.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#7 | |||
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]() Цитата:
Если вы хотите, то Вы можете написать int от этого ничего страшного не случится. Солнце все так же будет вставать на востоке и идти на запад. А кароновирус шагать по планете. Цитата:
sqrt(number) всегда в качестве оператора принимает числа с плавающей точкой. Если вы подадите на вход корню целое число. То компилятор распознает это и вставит в ассемблерный код преобразование типов. Это называется неявное преобразование. Цитата:
1000=1000.00000000(0) 1000= 999.999999999(9) Вам это могли рассказывать в школе. Если не рассказали в школе то в институте повторят на уроке матанализа. Внутри компьютера числа усеченные и там ваша 1000 хранится как Код:
А при вводе если нет точки, то читается целочисленное число и вызывается преобразование типов. Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 25.03.2020 в 16:31. |
|||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разбор кода CSharp | zxzLeejacKzxz | C# (си шарп) | 4 | 13.06.2012 07:25 |
Разбор кода | Arhit | Помощь студентам | 3 | 22.01.2012 16:34 |
Разбор кода Delphi | cv0l04b | Помощь студентам | 3 | 07.01.2012 13:39 |
Разбор куска кода. | Alexcomeback | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 05.04.2011 18:14 |
Разбор кода. С++ | TIT0 | Помощь студентам | 0 | 27.12.2010 11:17 |