Я написал трансформатор для десятичных чисел в другой системе чисел. Число, оставшееся до запятой, справа, но десятичное место после запятой ложно. Я буду Poste мой код, но переменные на немецком языке, поэтому я надеюсь, что вы можете прочитать ихпроблемы с python с десятичной точкой
здесь IST код не осталось запятой (без ошибки)
print "decimal numbers to another number system between [2-9]\n"
decimal = float(raw_input("put in a float: "))
base = int(raw_input("base: "))
#declaration for first part
decimalnew = decimal # we need this var for the second part
result = 0
number = int(decimal)/1
factor = 1
# first part for integers decimal is always an integer (this part is ok)
while (decimal):
\t leftover = int(decimal) % base
\t decimal = int(decimal)/base
\t
\t factor *= 10
\t result = result + leftover * factor
#declaration for second part
decimalnew = decimalnew - number
result2 = 0
factor2 = 1
# second part for floats always < 1 (f.e. 0.2)
# i think in this part is the mistake
while (decimalnew > 0):
\t leftover2 = decimalnew * base
\t decimalnew = decimalnew * base
\t if (decimalnew > 0):
\t \t decimalnew = decimalnew - leftover2 \t
\t factor2 = factor2 * 10
\t result2 = result2 + leftover2/factor2
# results from the first part and the second part
finalresult = result + result2
print "eingegebene Zahl", number, "- neue Zahl mit der Basis %d =" % (base) , finalresult/10
Я не могу читать по-немецки, и я с трудом понимание ваш вопрос. Что такое ожидаемое поведение? Что такое пример ввода? И что бы вам хотелось в качестве выхода? И что делает ваш текущий код неправильно? – CoryKramer
Для чего я могу читать. Он написал программу, которая преобразует от плавающей десятичной, к плавающей * любой основе *. Неправильная часть, которая преобразуется после запятой. В принципе, '0.5_10 = 0.1_2', или так я понимаю. – Santiago
Спасибо за ваш ответ. Вы хотите преобразовать десятичное число в другую систему чисел, например [binary = 2,3,4,5,6, 7, octal = 8 и 9. Я ввел число с var «dezimal» и «base «для системы чисел. Например, я помещаю номер 10, который выставляет в двоичном файле и так далее ... целые числа являются точными, но float ошибочны, например, если я поставил 10.2, вывод должен быть 1010,00110011 ... и так, но мой вывод 1010.004 или что-то подобное в двоичном коде, и вот проблема – WirJun