Как сделать из 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
![]()
Преобразование из float в int
Привет всем, есть вопрос в плане передачи переменной int с пр200 на пк через преобразователь где установлена будет скада, пока не знаю что за версия.
например нужно мне отслеживать давление, изначально, в софте значение давления это переменная флоат, число с хвостом, например 2.5 бар, преобразую например в интежер, получаеться 2 бар.
Как сделать чтобы данные в скаде отображались правильно так же 2.5. бар а не 2 бар
10.03.2022, 15:17 #2
- Просмотр профиля
- Сообщения форума
- Личное сообщение
- Домашняя страница
- Просмотр статей
![]()
Пользователь Регистрация 25.06.2011 Адрес Галактика Андромеды (M31) Сообщений 7,970
Сообщение от batur 
Привет всем, есть вопрос в плане передачи переменной int с пр200 на пк через преобразователь где установлена будет скада, пока не знаю что за версия.
например нужно мне отслеживать давление, изначально, в софте значение давления это переменная флоат, число с хвостом, например 2.5 бар, преобразую например в интежер, получаеться 2 бар.
Как сделать чтобы данные в скаде отображались правильно так же 2.5. бар а не 2 бар
Такое впечатление, что Вы «первый раз замужем»(БМП), короче, округлите до десятых долей, умножьте на 10 и преобразуйте в инт, в ПР всё!
В скаде(или ОРС-сервере) преобразуете обратно во флоат и разделите на 10(перенести запятую на один знак влево), всё!
Последний раз редактировалось Сергей0308; 10.03.2022 в 15:26 .
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.