В чем разница между integer и float
Перейти к содержимому

В чем разница между integer и float

  • автор:

В чем разница между float и double в Java?

Какая еще есть разница между типами данных float и double или я что-то в упор не вижу?

Отслеживать
14.3k 1 1 золотой знак 21 21 серебряный знак 31 31 бронзовый знак
задан 18 июл 2017 в 21:19
Yuri Migushin Yuri Migushin
61 1 1 серебряный знак 7 7 бронзовых знаков

Вставляйте код прямо в сообщение (в виде кода), а не ссылайтесь на внешние ресурсы. Сообщения должны быть самодостаточными, ссылки могут служить только дополнением.

18 июл 2017 в 22:46

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Принципиальный нюанс здесь в том, что вы оперируете десятичными числами, а float и double — бинарные. Те числа, которые вы делите и получаете в результате, непредставимы в бинарной системе счисления без периодичных дробей. Подробнее:

То, что вы наблюдаете — это не округления и обрубания, а попытки компьютера впихать невпихуемое и сделать вид, что на самом деле всё в порядке. Так как количество битов у мантиссы и экспоненты типов float и double разная, то «округления» и «обрубания» будут происходить с вашей точки зрения «непредсказуемо». Эта ситуация усугубляется ещё и тем, что точность вычислений на совести процессора, который, вообще говоря, не обязан выдавать точность до последнего знака. На другом компьютере вы можете увидеть другие результаты — если не включите специальный «предсказуемый» режим, который медленнее. Но даже в этом случае вы получите только одинаковые, но «непредсказуемые» результаты на разных компьютерах.

Когда работаете с float и double, примите как данность, что они всегда с погрешностью.

В чем разница int, long и float, double?

Начинаю учить Java и сразу споткнулся.
Желательно чтобы прям на пальцах разжевали.
Вот есть типы данных int и flow — все понятно: целые и дробные. Но в Java есть еще какие-то double и long.
Из прочитанного нагугления — ниасилил; только 32бит и 64.
Числа в hex и пр передаются и пишутся в коде? Или о чем и куда это вообще.
З.Ы.
Извините за глупый вопрос, но. Лучше спросить и показаться глупым, чем не спросить и таким остаться.
З.З.Ы.
Возможно кто-то заинтересуется взять в ученики, что было бы просто замечательно.

  • Вопрос задан более трёх лет назад
  • 12277 просмотров

3 комментария

Простой 3 комментария

Сергей Горностаев @sergey-gornostaev Куратор тега Java

Начинаю учить Java и сразу споткнулся.

Попробуйте учить по учебнику.

Exebeche

Александр Степанов @Exebeche Автор вопроса

Сергей Горностаев, спасибо за совет, но.
Уже доказано временем, что этот вариант для меня не подходит.
Если честно, даже сам, не верю, что у меня начало получаться программирование.
При моей «невосприимчивости» приходится на полную использовать настойчивость и пр. не очень хорошие методы; но на php и yii2 я уже могу сделать сайты различной сложности, но без фанатизма и в определенных рамках, которые я все теми же путями пытаюсь расширить..
З.Ы.
Если будет интересно и время могу без купюр рассказать о себе и как. Лет 15 назад я начал предпринимать попытки научиться программированию и верстке.
А на данный момент у меня есть (, пока что,) из того что можно показать — https://manufacture17.com.ua
А остальное даже показывать не стоит; научился не смотря ни на что и буду дальше пытаться.

Exebeche

Александр Степанов @Exebeche Автор вопроса

DarthWazer, не совсем готовым. Просто почитав материалы и пройдя уроки (SoloLearn) по/про PHP у меня осталось больше вопросов чем я получил ответов — самое яркое было про использование бд.
Ну такая вот у меня голова деревянная по-пояс.
А на фреймворке я учился написанию кода, созданию классов, взаимодействию между объектами, построению логики, построению архитектуры бд. Даже нашел в свободном доступе курс Дмитрия Елисеева по применению ООП на yii2 (очень ему признателен за такой курс и очень сожалею, что не имею возможности с ним за него расплатиться, но. кое что таки понял, хотя прям совсем чуть-чуть. (и оч надеюсь, что у меня появится возможность с Дмитрием рассчитаться, хоть и с запозданием))
Учить собираюсь упорно и настойчиво; читать/смотреть доступные материалы и перечитывать/пересматривать пытаясь вникнуть, понять и осознать. искать ответы на возникающие вопросы, а так же понять найденные ответы (благо есть Гулюгулю, стаковерфлоу и данный сайт, а так же уже заданные и отвеченные вопросы и люди, которые могут себе позволить дать ответ таким тяжелым «горе программистам»)) как я.
Всю свою историю становления «программистом» могу, при Ваших желании и интересе, рассказать в личной переписке, а в кратце — лет 15 назад я начал предпринимать попытки создания сайтов (верстка и пр.), года 3-4 как «с остервенелостью» начал долбиться о «гранитик науки» PHP; для таких сроков результаты «с гулькин нос» и я это вполне осознаю, но. кое-что все-таки получается и я уже не совсем бесполезный член общества; многое еще нужно понять, разобрать, усвоить и т.д. и я не оставляю попыток (тем более, что хоть и с трудом и на грани безумия, но мне удалось сдвинуть этот «гранит» с мертвой точки, а значит есть некоторые шансы сдвинуть и еще).
Было бы чудесно найти учителя, который мог бы взять меня «подмастерьем» т.е. чтобы я расплачивался своими уже имеющимися скилами и какую-то копейку выделять мне за проделанную мной рабоу «на нужды», ну или хоть совсем без копеек, но все же делиться знаниями и разжевывать те моменты, которые я совсем никак, но, пока такого человека не нашел и приходится — как есть.
Кое что, даже интуитивно удается понять, но о многом приходится задавать вопросы разной степени глупости, увы

Float vs. Integer — Simple Guide for Beginners

Every programmer should know the difference between Integer and Float. Those two data types are the backbone of mathematical operations.

Integer

An integer (known also as int) is a whole number without a decimal part. It can be positive, negative, or zero. Examples of integers are -3, 0, 5, 100, and so on. The integer data type is used to represent values such as counting, indexing, or storing quantities that can only be whole numbers.

Float

Float (floating-point number) is a number that includes a decimal part. Examples of floating-point numbers are -3.14, 2.71828, 0.5, 1.0, and so on. The float data type is used to represent values that can have a decimal part or require high precision, such as measurements, calculations involving decimal values, or scientific computations.

Float vs. Integer: key differences

Integer Float
Representation whole numbers decimal component
Precision exact precision limited precision
Range larger range of representable values smaller range
Memory Usage less memory required more memory reuired
Mathematical Operations basic mathematical operations such as addition, subtraction, and multiplication complex mathematical operations involving decimal numbers, such as division, trigonometric functions, and logarithms.

When choosing between float and integer, it is important to consider the nature of the data you are working with and the precision required for calculations. If you are dealing with whole numbers or require exact precision, use integers. If the data involves decimal parts or decimal calculations, use floats.

Examples in common programming languages

The topic of integers and floats interests us in the context of programming. Therefore, it is worth showing a few examples now.

Floats and Integers in Python

Here is a Python code snippet that demonstrates two variables, one of type integer and the other of type float. It is worth noting that in Python, you do not need to declare the variable type explicitly. The same variable can take values of both integer and float types.

 integer_value = 10 float_value = 3.14 print(integer_value) # Output: 10 print(float_value) # Output: 3.14 

Floats and Integers in Java

Java is another popular programming language. This time, we need to declare the variable type before assigning a value to it.

Here’s an example in Java:

 int integerValue = 5; float floatValue = 2.718f; System.out.println(integerValue); // Output: 5 System.out.println(floatValue); // Output: 2.718 

Floats and Integers in C++

In C++, we have a similar situation to Java where we need to declare the appropriate type for variables.

Here’s an example in C++:

 int integerValue = 8; float floatValue = 1.5; cout  

Floats and Integers in JavaScript

Lastly, let's look at an example in JavaScript. We have dynamic types so it works just like in Python. The same variable can take both Float and Int types.

Here's an example in JavaScript:

 var integerValue = 15; var floatValue = 0.5; console.log(integerValue); // Output: 15 console.log(floatValue); // Output: 0.5 

Different languages, different implementations

Different programming languages may have different rules and behaviors regarding operations on floats and integers. It is always important to consult the documentation of the specific language to understand the details and any potential pitfalls.

Summary

Integer represents whole numbers without a decimal part, while float represents floating-point numbers with a decimal part. Integer has exact precision and a larger range, whereas float has limited precision and can represent numbers with a decimal part. These rules are universal and apply to most popular programming languages.

You may also like:

Rust Language - What You Need to Know to Get Started

Discover the possibilities, applications, and perspectives for the Rust language. Find out if it's w.

Flutter and Dart - What You Need to Know to Start

Everything you need to know about Flutter and Dart to make a decision about the profitability of lea.

5 Programming Languages with Rapidly Growing Popularity

Here are five programming languages whose popularity is continually on the rise. Each of them has a .

В чем разница между integer и float

Хотя в Python существует множество типов данных, есть среди них наиболее распространенные. Например, следующие:

  1. int — этот тип данных состоит из целых чисел.
  2. float — этот тип используется для работы с десятичными числами.
  3. str — переменная с типом str (от string — строка) хранит данные в виде текстовых строк.

Где используется

  • Данные используются в программирования повсеместно, поэтому важно понимать, с какими именно вы сейчас работаете, и какие последствия это накладывает на процесс взаимодействия. Существует множество типов данных, но только некоторые из них используются каждым программистом.
  • int — тип данных для работы с целыми числами, а float — для работы с числами с плавающей точкой. str хранит данные в строковом формате и может включать буквы, символы и цифры. В то же время в int и float использовать символы нельзя — только числа.
  • тип bool состоит всего из двух значений: True или False . Важно отметить, что при инициализации или присваивании значения типа bool True или False нужно вводить без кавычек. Строковые же значения наоборот всегда заключены в кавычки.
Рекомендации по работе с типами данных
  1. Нужно всегда помнить о следующих особенностях типов данных: их форматах, областях применения и возможностях.
  2. Строковые значения всегда заключены в кавычки, тогда как int , float или bool записываются без них.

Примеры работы с разными типами данных

 

>>> my_сars_number = 3
>>> my_сars_color = "Бронза, зеленый, черный"
>>> print(my_сars_number)
>>> print(my_сars_color)
3
Бронза, зеленый, черный

В этом примере были созданы переменные двух типов данных, после чего они были выведены на экран. my_сars_number — это целое число ( int ), а my_сars_color — строка ( str ).

Рассмотрим порядок выполнения этого года:

  1. В первой строке создается переменная my_сars_number , и ей присваивается значение 3. Это внутренний процесс, поэтому увидеть результат этой операции не выйдет, только если не попробовать вывести значение переменной.
  2. На второй строке создается еще одна переменная, которой присваивается свое значение.
  3. На 3 и 4 строках ранее созданные переменные выводятся на экран.
Советы:

А зачем типы данных вообще нужны в Python? Этот вопрос наверняка будет интересовать в первую очередь начинающих программистов.

  1. Если подумать о внутреннем устройстве компьютера, то память в нем занимается распределением, а центральный процессор отвечает за вычисления. Благодаря типам данных компьютер знает, как распределять память, для чего ее использовать и какие операции выполнять с каким типом данных.
  2. Отличное сравнение в данном случае — контейнеры для продуктов. Типы данных можно воспринимать как разные контейнеры. В зависимости от типа еды, ее нужно размещать в соответствующих емкостях.
  3. С другой стороны, если конкретные данные — это целое число, то компьютер может не думать о конвертации их в нижний или верхний регистр, поиске гласных и так далее. Если строка — то здесь уже арифметические операции, поиск квадратного корня, конвертация и прочие команды становятся нерелевантными.

Создадим число с плавающей точкой.

 

>>> miami_temp_today = 103.40
>>> print(miami_temp_today)
103.4

В этом примере создаем число с плавающей точкой и выводим его на экране.

Продвинутые концепции

В Python есть и много других типов данных, например:

  • байты;
  • комплексные числа;
  • булевые значения.

Есть даже и другие значения в других областях: дата, время, GPS-координаты и так далее. В будущем полезно использовать их особенно в крупных проектах. Но пока что остановимся на базовых.

Посмотрим на булевый тип. Это довольно простая концепция, но более сложный тип данных. Основная сложность в том, что мы не сталкиваемся с таким типом в реальном мире, и поэтому порой его сложновато воспринимать. Булевый тип можно воспринимать как переключатель. Он может быть либо включенным, либо выключенным. В Python это либо True , либо False .

Важно запомнить, что значения этого типа не должны быть заключены в кавычки. Это их основное отличие от строк. По сути, True и "True" — это два разных типа данных в Python: булевое и строка.

В более продвинутых примерах булевые типы окажутся очень полезными.

В следующем примере может показаться, что используется строка, но на самом деле это значение булевого типа. Оно может быть либо True , либо False .

What is the difference between the float and integer data type when the size is the same?

So while both are 32 bits wide, their use (and representation) is quite different. You cannot store 3.141 in an integer, but you can in a float .

Dissecting them both a little further:

In an integer, all bits except the leftmost one are used to store the number value. This is (in Java and many computers too) done in the so-called two's complement, which support negatives values. Two's complement uses the leftmost bit to store the positive (0) or negative sign (1). This basically means that you can represent the values of −2 31 to 2 31 − 1.

In a float, those 32 bits are divided between three distinct parts: The sign bit, the exponent and the mantissa. They are laid out as follows:

S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM 

There is a single bit that determines whether the number is negative or non-negative (zero is neither positive nor negative, but has the sign bit set to zero). Then there are eight bits of an exponent and 23 bits of mantissa. To get a useful number from that, (roughly) the following calculation is performed:

(There is more to it, but this should suffice for the purpose of this discussion)

The mantissa is in essence not much more than a 24-bit integer number. This gets multiplied by 2 to the power of the exponent part, which, roughly, is a number between −128 and 127.

Therefore you can accurately represent all numbers that would fit in a 24-bit integer but the numeric range is also much greater as larger exponents allow for larger values. For example, the maximum value for a float is around 3.4 × 10 38 whereas int only allows values up to 2.1 × 10 9 .

But that also means, since 32 bits only have 4.2 × 10 9 different states (which are all used to represent the values int can store), that at the larger end of float 's numeric range the numbers are spaced wider apart (since there cannot be more unique float numbers than there are unique int numbers). You cannot represent some numbers exactly, then. For example, the number 2 × 10 12 has a representation in float of 1,999,999,991,808. That might be close to 2,000,000,000,000 but it's not exact. Likewise, adding 1 to that number does not change it because 1 is too small to make a difference in the larger scales float is using there.

Similarly, you can also represent very small numbers (between 0 and 1) in a float but regardless of whether the numbers are very large or very small, float only has a precision of around 6 or 7 decimal digits. If you have large numbers those digits are at the start of the number (e.g. 4.51534 × 10 35 , which is nothing more than 451534 follows by 30 zeroes – and float cannot tell anything useful about whether those 30 digits are actually zeroes or something else), for very small numbers (e.g. 3.14159 × 10 −27 ) they are at the far end of the number, way beyond the starting digits of 0.0000.

Числовые типы данных в Python: integer, float

Любые данные хранятся в ячейках памяти компьютера. Когда мы вводим число, оно помещается в какую-либо ячейку памяти. Возникают вопросы: Куда именно? Как впоследствии обращаться к этим данными?

В программе данные связываются с каким-либо именем. В дальнейшем обращение к ним возможно по этому имени-переменной.

Термин «переменная» обозначает, что ее сущность может меняться, она непостоянна.

В программе на языке Python, как и на большинстве других языков, связь между данными и переменными устанавливается с помощью знака = (знак равно). Данная операция называется присваиванием.

Например, выражение, представленное ниже, означает, что на объект, представляющий собой число 4, находящееся в определенной области памяти, теперь ссылается переменная a.

a = 4

Имена переменных могут быть любыми. Однако есть несколько общих правил их написания:

  • Желательно давать переменным осмысленные имена, говорящие о назначении данных, на которые они ссылаются.
  • Имя переменной не должно совпадать с командами языка (зарезервированными ключевыми словами).
  • Имя переменной должно начинаться с буквы или символа подчеркивания, но не с цифры.
  • Имя переменной не должно содержать пробелы.

Чтобы узнать значение, на которое ссылается переменная, находясь в режиме интерпретатора, достаточно ее вызвать, то есть написать имя и нажать Enter.

Числовые типы данных

Напишите в консоли следующую команду и нажмите Enter:

>>> 1 + 1

В результате получим следующее:

При программировании мы чаще всего будем сталкиваться с такими числовыми типами данных (формализация информации), как целые числа и числа с плавающей точкой.

Целые числа (тип int) — это положительные и отрицательные целые числа, а также 0, например: 0, -1, 1, 1827 и т.д.

Числа с плавающей точкой (тип float) — это вещественные, числа (рациональные + иррациональные числа), например: 0, -1, 1, 1827, 0.5, -0.76, 3.141592 (число пи) и т.д.

Операции

Операция — это выполнение каких-либо действий над данными (операндами). Действие выполняется оператором (сложение(+), умножение(*) и т.п. ). Результат операции зависит как от оператора, так и от операндов.

Изменение типа переменных

Давайте создадим две переменные A и B, которым присвоим некоторые значения:

>>> A = 10 >>> B = 1.24

В зависимости от введенной информации, Python самостоятельно определяет тип переменно. Чтобы посмотреть типы заданных переменных, воспользуемся функцией type(), для этого введем следующую команду:

>>> type(A)

После ввода на экране появится тип переменной А, в нашем случае это будет целое число, то есть на экране мы увидим следующее:

>>> type(A)

Проведем ту же операцию со второй переменой, на экране увидим следующее:

>>> type(B)

Попробуем сложить переменные разных типов данных и выясним, к какому типу относится полученный результат:

>>> С = A + B >>> type(С)

Как можете заметить, в итоге мы получили переменную float.

Любые математические действия можно выполнять только над одинаковыми типами данных, т.е. либо все float, либо все int и т.д.

Но тогда как мы сейчас смогли это сделать? Python самостоятельно производит перевод переменных в нужный тип данных. Вы можете самостоятельно произвести данный переход с помощью функций int(), float():

>>> type(A) >>> A = float(A) >>> type(A) >>> type(B) >>> B = int(B) >>> type(B) >>> A 10.0 >>> B 1

Как видите, значение B было округлено. Рассмотрим подробнее округление на функции int(), которая переводит вещественное число в целое:

>>> A1 = 0.1 >>> A2 = 0.4 >>> A3 = 0.7 >>> A4 = 1.1 >>> A1 = int(A1) >>> A2 = int(A2) >>> A3 = int(A3) >>> A4 = int(A4) >>> A1 0 >>> A2 0 >>> A3 0 >>> A4 1

Как можно заметить, округление происходит до ближайшего целого числа по направлению в сторону нуля, то есть в меньшую сторону.

Основные математические операции в Python
  • Cложение (+) используется для получения суммы (в отношении чисел), было нами рассмотрено выше.
  • Вычитание (-) — операция, противоположная сложению.
  • Умножение(*) используется для получения произведения сомножителей.
>>> type(2 * 2) >>> type(0.1 * 2) >>> type(0.2 * 5)
  • Возведение в степень (**) используется для возведения числа в степень, то есть умножение числа на само себя столько раз, сколько указано в степени.
>>> 2 ** 3 8 >>> 2 ** 4 16
  • Деление (/) — действие, обратное умножению, используется для получения частного
>>> 4 / 2 2.0 >>> type(4/2) >>> 2 / 4 0.5

Даже если делимое и делитель являются целыми числами и делитель содержится в делимом целое число раз, то результат деления будет float.

  • Целочисленное деление (//) нужно для получения целочисленного результата деления, то есть при данной операции отбрасывается дробная часть числа.
>>> 4 // 2 2 >>> type(4 / 2) >>> 2//4 0 >>> type(2 // 4)
  • Получение остатка от деления (%). В результате данной операции Вы получаете то, что осталось от деления, то есть вы получаете то, что невозможно дальше делить. Например, в первом случае 4 делится без остатка — в 4 две 2, во втором случае 2 не разделить на 4, оно сразу уходит в остаток, в третьем случае 7 содержит две 3 (6), в остаток уходит 7 — 6 = 1.
>>> 4 % 2 0 >>> 2 % 4 2 >>> 7 % 3 1
  • Модуль числа (abs()) используется для получения модуля числа, то есть отбрасывается знак перед числом
>>> abs(-0.1) 0.1 >>> abs(0) 0 >>> abs(-283) 283 >>> abs(45) 45
  • Округление (round()) — данная операция округляет число до ближайшего целого числа, формат int.
>>> round(0.5) 0 >>> round(0.6) 1 >>> round(1.1) 1 >>> round(1.5) 2 >>> round(1.4) 1

Курсы Робикс, в которых изучается этот материал.

  1. Программирование на Python в Minecraft
  2. Duckietown робот с системой Автопилота

Похожие публикации:

  1. Как открыть поврежденный пдф файл онлайн бесплатно
  2. Как создать поле
  3. Ооп кто придумал
  4. Ошибка неверный домен ключа recaptcha как исправить joomla

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *