#python
Дано вещественное число вида nnn.ddd (по три разряда в целой и дробной части). Поменять местами дробную и целую части числа. Я так вижу её на питоне. Подскажите, правильно или нет. Почему-то не идёт. n=float(input()) print((n*1000)%1000+int(n)/1000)
Ответы
Ответ 1
Чтобы избежать проблем с тем как float представлены в компьютере, работайте со строками напрямую: s = input().strip() print(*s.partition('.')[::-1], sep='') Пример ввода: 543.210 Вывод: 210.543 Если хотите как с числом работать, то можно использовать класс, который десятичные цифры использует внутри для хранения чисел: >>> from decimal import Decimal >>> d = Decimal('543.210') >>> (d%1)*1000+Decimal(int(d))/1000 Decimal('210.543') Результаты обоих методов совпадают с точностью до лидирующих нулей в начале целой части.Ответ 2
x = 123.001 '{0:07.3f}'.format((x - int(x)) * 1000 + int(x) / 1000) # '001.123' float('{0:07.3f}'.format((x - int(x)) * 1000 + int(x) / 1000)) # 1.123
Комментариев нет:
Отправить комментарий