Найти - Пользователи
Полная версия: Как перенести запятую у числа?
Начало » Python для новичков » Как перенести запятую у числа?
1
CAP33
Привет. Есть число типа float 24187.0. Мне надо перенести запятую на 3 знака влево, чтобы получилось 24.187. Чтобы это сделать я делю число 24187.0 на 1000, но вместо ожидаемого результата получаю 24.187000000000001. Тогда пробую применить округление до первой цифры после запятой: round(24187.0 / 1000, 1). Но получаю 24.199999999999999.
Подскажите, что я неправильно делаю. Может есть ещё какие-нибудь способы переноса запятой?
clipper1995
Непонятно, в каком контексте поставлена задача.

Если подойти формально, можно просто преобразовать в текст, и сделать на выходе текст.

Хотя у меня так получается

 x = float(24187.0)
y = float(x / 1000)
print(y)
py.user.next
  
>>> n = 24187.0
>>> n
24187.0
>>> out = round(n / 1000, 5)
>>> n, out
(24187.0, 24.187)
>>>
DamMercul
В питоне из-за абстрагиования нас от этих низкоуровневых преблуд, типо базовых типов int, chat(массив байтов тут), float, double, long и т.п. питон сам решает где и что будет. Но в этом как раз он часто и ошибается. Но вот в новых версиях питона (3.6.x-3.7.x) эта проблема почти исправлена.
 >>> 24187.0 / 1000
24.187
>>> print('izi pizi')
И так с любыми расчетами. (Бывают косяки, но редкие)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB