Я пытаюсь создать функцию Python, которая принимает число с плавающей запятой и преобразует его в строку со своим двоичным кодом (учитывая также дробную часть, разделенную точкой), но для некоторых значений, таких как 0,5, 0,25, 0.10, 0.05, 0.05, ...- выдает следующую ошибку:
line 7, in floatToBinary integerPart, fractionalPart = str((convertDecimal(fractional))*2).split(".")
ValueError: Not enough values to unpack (expected 2, got 1)
Функции:
def floatToBinary(floatNumber, decimalPlaces):
integerPart, fractionalPart = str(floatNumber).split(".")
integerPart = int(integerPart)
fractionalPart = int(fractionalPart)
result = bin(integerPart).lstrip("0b") + "."
for i in range(decimalPlaces):
integerPart, fractionalPart = str((convertDecimal(fractionalPart))*2).split(".")
fractionalPart = int(fractionalPart)
result += integerPart
return result
def convertDecimal(n):
while n > 1:
n /= 10
return n
Надеюсь, вы мне поможете.