Перейти к содержимому

Как из float сделать int

  • автор:

Как сделать из float число int python3

Проблема такая. Есть, например, две переменные, одна из них float, а другая — int или тоже float. И может получиться такое, что при вычислении одного числа из другого получается целое число, например: 2.62 — 1.62 = 1.0 Как убрать этот ноль и точку в конце числа?

Отслеживать
задан 22 ноя 2020 в 7:15
5 1 1 серебряный знак 3 3 бронзовых знака

Вообще это больше вопрос представления. В чём собственно ваша проблема — непонятно. Вы просите решения, не обозначив реальную проблему.

22 ноя 2020 в 7:45

1 ответ 1

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

для начала надо разобраться для чего удалять 0

превратить число с плавающей запятой в целое можно функцией int

a = 3.14 b = 2.78 c = int(a - b) 

если же выводить на экран без дробной части, то можно использовать функцию format и вообще представление числа с плавающей запятой как .0f

если же хочется превращать число с плавающей запятой в целое, только когда оно целое, то можно сделать так:

c = int(c) if c == float(int(c)) else c 

Преобразование float в int с инициализацией переменной на лету, адекватно?

Каким путем? У вас не ясно какой тип у x.
Видимо подразумевается, что x — int.
Выражение 2 * (a + y) в итоге имеет тип float.
Если x — int, то выражение будет преобразовано к int.
Правильно отбрасывать дробную часть или нет — зависит от задачи.
Если надо — отбрасывайте. Предложенный способ — вполне годный.
В любом случае лучше использовать явное преобразование. Это поможет людям, которые будут смотреть ваш код, понять, что это преобразование именно так и задумывалось, а не получилось случайно.

Рекомендую поставить опции компилятора на максимальные предупреждения и соответствия стандарту (для gcc -std=c11 -Wall -Wextra -pedantic) и пишите код так, что бы при сборке у компилятора не было предупреждений. Многие используют еще и -Werror — это прост вынуждает вас писать код без предупреждений, т.к. они теперь станут ошибками.

Преобразование float to int

VS10 express(настроена под си) выкинула ошибку Отладчику не удалось обнаружить исходный файл «f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\tran\i386\ftol2.asm».

Ниже полный текст. Может кто-то знает как его вылечить, буду благодарен.

Поиск источника для «f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\tran\i386\ftol2.asm». Checksum: MD5
Файл «f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\tran\i386\ftol2.asm» не существует.
Поиск в документах скриптов для «f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\tran\i386\ftol2.asm».
Поиск в проектах для «f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\tran\i386\ftol2.asm».
Файл не был найден в проекте.
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\vc7\atlmfc».
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\vc7\crt».
Поиск в каталоге «E:\».
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc».
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfcm».
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\atl».
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src».
Поиск в каталоге «».
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include».
Поиск в каталоге «C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include».
Поиск в каталоге «C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include».
Поиск в каталоге «C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\\include».
Поиск в каталоге «».
Настройки исходных файлов отладки для активного решения указывают, что отладчик не будет запрашивать у пользователя поиск файла: f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\tran\i386\ftol2.asm.
Отладчику не удалось обнаружить исходный файл «f:\dd\vctools\crt_bld\SELF_X86\crt\prebuild\tran\i386\ftol2.asm».

Тема: Преобразование из float в int

batur вне форума

По умолчаниюПреобразование из float в int

Привет всем, есть вопрос в плане передачи переменной int с пр200 на пк через преобразователь где установлена будет скада, пока не знаю что за версия.
например нужно мне отслеживать давление, изначально, в софте значение давления это переменная флоат, число с хвостом, например 2.5 бар, преобразую например в интежер, получаеться 2 бар.
Как сделать чтобы данные в скаде отображались правильно так же 2.5. бар а не 2 бар

10.03.2022, 15:17 #2

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение
  • Домашняя страница
  • Просмотр статей

Сергей0308 на форуме

Пользователь Регистрация 25.06.2011 Адрес Галактика Андромеды (M31) Сообщений 7,970

По умолчанию

ЦитатаСообщение от batur Посмотреть сообщение

Привет всем, есть вопрос в плане передачи переменной int с пр200 на пк через преобразователь где установлена будет скада, пока не знаю что за версия.
например нужно мне отслеживать давление, изначально, в софте значение давления это переменная флоат, число с хвостом, например 2.5 бар, преобразую например в интежер, получаеться 2 бар.
Как сделать чтобы данные в скаде отображались правильно так же 2.5. бар а не 2 бар

Такое впечатление, что Вы «первый раз замужем»(БМП), короче, округлите до десятых долей, умножьте на 10 и преобразуйте в инт, в ПР всё!
В скаде(или ОРС-сервере) преобразуете обратно во флоат и разделите на 10(перенести запятую на один знак влево), всё!

Последний раз редактировалось Сергей0308; 10.03.2022 в 15:26 .

Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.

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

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