Я хочу, чтобы python показывал только те десятичные разряды, которые действительно необходимы. Например :
x = 10
print("The value of 'x' is - " + float(x))
будет печатать только:
The value of 'x' is - 10.0
Это действительно раздражает, так как я пытаюсь сделать калькулятор, который использует float()
во многих местах, и я просто не могу избавиться от .0
.
Я ищу действительно упрощенный код. И я не хочу, чтобы число каким-либо образом округлялось, чтобы изменить исходное точное значение.
Я использую Anaconda Spyder (Python 3.8) и буду запускать код в Anaconda Prompt.
@chepner, пожалуйста, поймите, что, делая калькулятор, я не знаю результата. После расчета мне нужны только необходимые десятичные знаки. В приведенных ниже ответах есть хорошие способы различить одно и то же.
Подумайте, сколько знаков после запятой необходимо для x - 1
для x = 1.1
и x = 1.0
, основываясь исключительно на результате x - 1
, а не на знании того, что было присвоено x
.
Как насчет проверки, является ли это числом с плавающей запятой перед печатью?
x = 10
y= int(x) if int(x)==x else float(x)
print("The value of 'x' is - " + str(y))
Примеры:
x = 10
y= int(x) if int(x)==x else float(x)
>>> print("The value of 'x' is - " + str(y))
The value of 'x' is - 10
x = 10.32
y= int(x) if int(x)==x else float(x)
>>> print("The value of 'x' is - " + str(y))
The value of 'x' is - 10.32
x = 10.0
y= int(x) if int(x)==x else float(x)
>>> print("The value of 'x' is - " + str(y))
The value of 'x' is - 10
А если x = 10.0
?
Да, вы правы, я обновил код и добавил его в примеры, спасибо
Это самый простой ответ из всех!
Проверка, является ли число целым или плавающим
Это мой первый подход
number = input("Input number: ")
if isinstance(number, int) == True:
print(int(number))
else:
print(number)
number = float(input("Input number: "))
number_dec = str(number-int(number))[1:]
if number_dec == '.0':
print(int(number))
else:
print(number)
Дайте определение «необходимо». Вы «знаете» только то, что
x
является целым числом, потому что вы жестко закодировали его как единицу. Но что, если быx
было результатом некоторой операции между двумя другими значениями. Как отличить целочисленный результат от почти целого числа с плавающей запятой?