2017-01-24 10 views
1

Я изо всех сил пытаюсь отформатировать некоторые цифры в моей программе python. Пользователи вводят три числа, а затем я помещаю их в формулу. Например, когда в командной строке вводятся следующие цифры: 1 2 3, вывод должен выглядеть следующим образом: x ** 2 + 2x + 3 = 0Форматирование чисел в python

Вместо этого я получаю следующее: 1.0x ** 2 + 2.0x + 3.0 = 0

Как отформатировать его, чтобы потерять конечные десятичные знаки? Я просто хочу, чтобы он распечатал то, что было представлено. Вот некоторые из моего кода:

a = float(sys.argv[1]) 
    b = float(sys.argv[2]) 
    c = float(sys.argv[3]) 

    #to format equation 
    equation = ("{}x**2{}x{}".format(a,b,c)) 
+0

и если 'a' равно 0, вы хотели бы« 2x + 3 »? –

+3

Возможно, вам нужно указать «форматирование чисел Google в python». – khelwood

+1

'' Я просто хочу, чтобы он распечатывал то, что было отправлено. "' - Тогда просто не конвертируйте в 'float'? –

ответ

0

Просто используйте INT вместо поплавка

import sys 

a = int(sys.argv[1]) 
b = int(sys.argv[2]) 
c = int(sys.argv[3]) 

#to format equation 
equation = ("({}x**2)+({}x)+({})".format(a,b,c)) 

print equation 

Я попытался: питон myfile.py -1 -2 3

выход:

(-1x ** 2) + (- 2x) + (3)

+0

Тогда он не будет работать для поплавков. Он будет работать, если оператору нужны только целые числа. –

+0

@Someone OP хочет простой int, поскольку он заявил, что x ** 2 + 2x + 3 = 0.s –

+0

будет ли это отрицательным? – user3093377

0

Вы можете ввести переменную типа cast в formattin г.

a = float(sys.argv[1]) 
    b = float(sys.argv[2]) 
    c = float(sys.argv[3]) 

    equation = ("{}x**2{}x{}".format(int(a),int(b),int(c))) 
    print equation 
0

Ответы всех пользователей не допускают ввода с поплавком. Есть 2 способа сделать это, что я могу думать:

a = float(sys.argv[1]) 
b = float(sys.argv[2]) 
c = float(sys.argv[3]) 

equation = ("{}x**2+{}x{}".format(str(a).rstrip('0').rstrip('.'),str(b).rstrip('0').rstrip('.'),str(c).rstrip('0').rstrip('.'))) 
print equation 

Это один забирает 0 и . с конца каждого номера, если он существует.

a = float(sys.argv[1]) 
b = float(sys.argv[2]) 
c = float(sys.argv[3]) 

equation = ("{}x**2+{}x{}".format(sys.argv[1], sys.argv[2], sys.argv[3]) 
print equation 

Этот вставляет именно то, что пользователь вводил в уравнение.