2013-05-31 3 views

ответ

11

В IPython вы можете использовать

%precision %.4g 

отпечатывается значения с плавающей точкой, кто абсолютное значение < 1E4 или> = 1E4 в научной нотации.

Дополнительную информацию о команде %precision введите в поле IPython API Docs. Для вариантов форматирования строк смотрите Python Docs

+0

Удивительный, спасибо! (Примечание: я не думаю, что там должны быть цитаты). Есть ли способ сделать это по умолчанию (или загружать его каждый раз, когда я запускаю ipython)? – DilithiumMatrix

+1

Добавьте (или отредактируйте) строку 'c.InteractiveShellApp.exec_lines = ['% precision% .4g']' в файле конфигурации IPython. Чтобы найти файл, используйте 'ipython locate'. В моем случае это было в '~/.ipython/profile_default/ipython_config.py' (см. [IPython Doc] (http://ipython.org/ipython-doc/stable/config/overview.html#ipython-dir)) , Спасибо за указание цитат, я их удалю :-). – zabbarob

+1

Это решение больше не работает (IPython 2.2.0/RHEL7/Python 2.7.5). Он продолжает печатать научную нотацию для значений, которые не соответствуют моему запрошенному порогу. – dg99

0

На самом деле это не имеет ничего общего с IPython, как это просто вызывает __str__. К сожалению, float, являющийся встроенным типом, реализован на C, и вы не можете использовать типы monkeypatch C. Таким образом, ваши единственные варианты изменяют реализацию __str__ в cpython или исправление IPython, чтобы быть умнее, чем просто позвонить __str__.

Смежные вопросы