Как убрать 0 в питоне после числа
Перейти к содержимому

Как убрать 0 в питоне после числа

  • автор:

Форматирование поплавков в Python без лишних нулей

Как форматировать float, чтобы он не содержал нулевые остатки? Другими словами, я хочу, чтобы результирующая строка была как можно короче.?

17 ответов

Me, я бы сделал (‘%f’ % x).rstrip(‘0’).rstrip(‘.’) — гарантирует форматирование с фиксированной запятой, а не научную нотацию и т.д. и т.д. Да, не такой гладкий и элегантный, как %g , но он работает (и я не знаю как заставить %g никогда не использовать научную нотацию, -).

15,95 десятичных знаков — это предел для «двойной точности» (64 бита), для «одинарной точности» (32 бита) это

7,22 десятичных знака.

Вы можете использовать %g для достижения этой цели:

или, для Python 2.6 или выше:

Из docs для format : g вызывает (между прочим)

несущественные конечные нули [будут] удалены из значимости, а десятичная точка также удаляется, если после него не осталось оставшихся цифр.

10% больше времени, чем '<:2.5f>'.format(v) . Даже если это не так, я склонен использовать форму метода str потому что, когда мне нужно настроить его, добавить к нему дополнительные значения и т. Д., Есть меньше изменений. Конечно, с 3.6 у нас есть f-строки для большинства целей. 🙂

После просмотра ответов на несколько похожих вопросов это кажется лучшим решением для меня:

%g не избавляется от научной нотации.

15 десятичных знаков, похоже, избегают странного поведения и имеют большую точность для моих потребностей.

Я мог бы использовать format(inputValue, ‘.15f’). вместо ‘%.15f’ % inputValue , но это немного медленнее (

Я мог бы использовать Decimal(inputValue).normalize() , но в этом есть несколько проблем. Во-первых, он медленнее (

11x). Я также обнаружил, что, хотя он имеет довольно высокую точность, он по-прежнему страдает от потери точности при использовании normalize() .

Самое главное, что я все равно буду преобразовываться в Decimal из float , который может заставить вас получить что-то другое, кроме числа, которое вы там вложили. Я думаю, что Decimal работает лучше всего, когда арифметика остается в Decimal , а Decimal инициализируется строкой.

Я уверен, что проблема с точностью Decimal.normalize() может быть скорректирована с учетом настроек контекста, но, учитывая уже медленную скорость и не требующую смешной точности, и тот факт, что я все еще буду преобразовывать из float и во всяком случае, потеря точности, я не думал, что это стоит того, чтобы преследовать.

Меня не интересует возможный результат «-0», поскольку -0.0 является допустимым числом с плавающей запятой, и, вероятно, это будет редкое событие, но, поскольку вы упоминали, что хотите сохранить строковый результат короче возможно, вы всегда можете использовать дополнительные условные условия при очень низкой стоимости дополнительной скорости.

отбрасывать конечные нули из десятичной дроби

У меня длинный список десятичных дробей, который я должен скорректировать с учетом коэффициентов 10, 100, 1000, . 1000000 в зависимости от определенных условий. Когда я их умножаю, иногда возникает бесполезный конечный ноль (хотя и не всегда), от которого я хочу избавиться. Например.

Есть ли функция, которая указывает десятичному объекту отбрасывать эти незначительные нули? Единственный способ сделать это — преобразовать строку и заменить ее с помощью регулярных выражений.

Должен, вероятно, упомянуть, что я использую Python 2.6.5

Правильный ответ EDIT отправителя заставил меня осознать, что я иногда получаю число, например 250.0, которое при нормализации выдает 2.5E + 2. Я думаю, что в этих случаях я мог бы попытаться разобраться в них и преобразовать в int

10 ответов

Возможно, есть лучший способ сделать это, но вы можете использовать .rstrip(‘0’).rstrip(‘.’) для достижения желаемого результата.

Используя ваши номера в качестве примера:

И вот исправление для проблемы, которую Геррит указал в комментариях:

Вы можете использовать normalize , чтобы удалить дополнительную точность.

Чтобы избежать удаления нулей слева от десятичной точки, вы можете сделать это:

Или более компактно, используя quantize , как предложено user7116 :

Вы также можете использовать to_integral() , как показано здесь, но я думаю, что использование as_tuple таким способом является более самостоятельным -documenting .

Я проверил их оба против нескольких случаев; Пожалуйста, оставьте комментарий, если вы найдете что-то, что не работает.

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

Используйте спецификатор формата %g . Кажется, удалить до конечных нулей.

Это также работает без функции Decimal

Слегка измененная версия ответа A-IV

ПРИМЕЧАНИЕ , что Decimal(‘0.99999999999999999999999999995’).normalize() округляется до Decimal(‘1’)

Почему бы не использовать модули 10 из числа, кратного 10, чтобы проверить, есть ли остаток? Нет остатка означает, что вы можете принудительно int ()

Чтобы сбросить конечные нули для дробной части, вы должны использовать normalize :

Но это работает иначе для чисел с ведущими нулями в острой части:

В этом случае мы должны использовать `to_integral ‘:

Таким образом, мы могли бы проверить, есть ли часть дроби:

И используйте соответствующий метод:

Теперь мы закончили.

Я имел дело со значением из словаря json (возвращаемого API). Все вышеперечисленное не помогло мне, поэтому я создал собственную вспомогательную функцию. Обрезает все конечные нули.

Я надеюсь, что это помогает кому-то там

Это должно работать:

Я закончил тем, что сделал это:

Примечание: приведение возвращаемого значения в виде строки ограничит вас до 12 значащих цифр

4 способа обрабатывать точные значения в Python

Эй, читатели! В этой статье мы будем сосредоточиться на 4 простых способах обрабатывать точные значения в Python. Что это значит, обрабатывая точные значения?

  • Автор записи

Эй, читатели! В этой статье мы будем сосредоточиться на 4 Простые способы обрабатывать точные значения в Python Отказ

Что это значит, обрабатывая точные значения?

Когда дело доходит до обращения с огромным количеством данных, наряду с ним наступает огромная очередь цифр, опубликованная десятичная точка. Да, особенно при выполнении математических операций в огромном наборе данных, мы в конечном итоге пренебрегаем президенцией данных.

То есть когда ощущается необходимость обращения с точными значениями.

Обращая за точными значениями, мы заботимся о десятичных точках, обрабатывая их, имея настроенные значения или даже полностью пренебрегающие значениями по причине.

В ходе этой темы мы будем двигаться над значений метода для решения и обрабатывания данных о точности в Python.

Способы обрабатывать точные значения в Python

В Python он включает в себя различные функции для выполнения и обработки точности значения.

В контексте до текущей темы мы посмотрим на методы ниже, чтобы прививать точность в данных

  • Функция TRUNC ()
  • Функция круглая ()
  • Функция Ceil ()
  • Функция пола ()
  • % оператора

Давайте посмотрим на них один за другим!

1. Функция Python Trunch ()

Один из способов избавления от точек прецизионных точек использует функцию TRUNC (). С помощью функции Python Trunch () она устраняет все цифры или десятичные значения после десятичной точки и представляет значение только до десятичной точки.

Таким образом, он удаляет или отсоединяет все десятичные значения после десятичной точки и возвращает номер до самой десятичной точки.

Выход- 11.

2. Математические функции Ceil () и пол ()

Математический модуль Python предоставляет нам два важных функция в отношении точного обращения

  • Функция CEIL (): он отключается от десятичного числа к ближайшей большой цене после него. Например, он охватил бы десятичное число 12.4 к 13 , соответственно.
  • Функция пола (): он отключается от десятичного числа к ближайшему небольшому количеству до количества. Например, он охватил бы десятичное число 12.4 к 12 , соответственно.

3. Функция Python Rounl ()

Функция Python Rounl () позволяет нам выполнять точность в индивидуальном порядке. То есть мы можем применить количество точек, которые будут отображаться после десятичной точки.

4. Оператор Python%

Помимо Функция Rounl () Python также предоставляет нам оператор% Чтобы манипулировать и эффективно выполнять точность на индивидуальном масштабе.

С помощью% оператора мы можем указать количество цифр, которые будут включены как часть номера после десятичной точки.

Заключение

По этому, мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом.

Для получения дополнительных таких постов, связанных с программированием Python, оставайся настроенными нами!

Remove Leading Zeros in Python String

Remove Leading Zeros in Python String

The removal of leading or trailing zeros is essential when data processing is performed, and the data has to be passed forward. A stray 0 might get attached to the string while it is transferred from one place to another, and it is recommended to remove it as it is unnecessary and inconvenient.

Please enable JavaScript

This tutorial demonstrates the several ways available to remove leading zeros in a string in Python.

Use Iteration Statements to Remove Leading Zeros in a String in Python

The simplest and most basic way to remove leading zeros in a string in Python is to remove them using iteration statements manually. Here, we manually create a code using a for loop along with the while loop to make a program that removes leading zeros in a string in Python.

The following code uses the for loop to remove leading zeros in a string in Python.

The above code provides the following output:

In the above code, we use two iteration statements, a for loop and a while loop, the latter being nested within the former. Finally, we append the newly created list and then display it after making the necessary changes.

Use the lstrip() Function Along With List Comprehension to Remove Leading Zeros in a String in Python

The lstrip() can be utilized to remove the leading characters of the string if they exist. By default, a space is the leading character to remove in the string.

List comprehension is a relatively shorter and very graceful way to create lists that are to be formed based on given values of an already existing list.

We can combine these two things and use them in our favor.

The following code uses the lstrip() function along with the list comprehension to remove leading zeros in a string in Python.

The above code provides the following output.

In the above code, the lstrip() function is used to strip the leading zeros in the given string. List comprehension is used here to extend the logic further and achieve this program successfully without any errors.

Use the startswith() Method + Loop + List Slicing to Remove Leading Zeros in a String in Python

The startswith() method provides a True value when the string starts with the value that the user in the function definition specifies. We combine this startswith() function with a loop and list slicing to remove leading zeros in a string in Python.

The following code uses the startswith() method + loop + list slicing to remove leading zeros in a string in Python.

The above code provides the following output:

In the above code, a for loop is opened for working, and the list slicing process is done with the help of the startswith() function.

The drawback with this method is that it only removes one leading zero at a run, which can be problematic with big numbers.

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *