Я ищу способ округления чисел в python (на выходе) до 4 значащих цифр.Круглый Python плавает до 4 значащих цифр на выходе, в разных числовых диапазонах
То есть, я хочу функцию, r4()
, что имеет такое поведение:
r4(1.23456) -> '1.235'
r4(12.3456) -> '12.35'
r4(123.456) -> '123.5'
r4(1234.56) -> '1235.'
Во всех этих случаях я округлить до «4», а не «5», потому что я хочу IEEE режим округления " круглый половина Даже»(округляется до ближайшего со связями, идущих до ближайшего целого числа событий), поэтому функция должна также производить:
r4(1.23556) -> '1.236'
Я посмотрел на round()
и при использовании .f
форматирования, и ничего не делает это совершенно верно. Я думаю о том, чтобы взять его в научную нотацию, вычислить число значимых фигур, а затем забрать ее, но это кажется глупым.
Интересно, почему кто-то дал мне -1. – vy32
Округление, которое вы запрашиваете, не соответствует формату IEEE round-ties-to-even: '1.23456' строго соответствует' 1.235', чем '1.234', поэтому он должен округлить, а не вниз в этом режиме , –
Помимо направления округления, 'def r4 (x): формат возврата (x, '.4g')' кажется близким к тому, что вам нужно. –