给定一个10进制的数包含整数部分和小数部分,转换为N进制数
例:
数字:234.567,转换为4进制数为3222.22222,保留5位小数
用math.modf方法分别取整数和小数部分,再对整数部分除N取余,对小数部分乘N取整,最后拼接起来就好了,整数部分要逆序输出
a = 234.567
N = 4
aa = math.modf(a)
a1 = int(aa[1])#取整数部分
a2 = aa[0]#取小数部分
zlist = []
while a1 != 0:#转换整数部分
p = a1 % N#除N取余
zlist.append(p)
a1 = a1 // N
xlist = []
while len(xlist) < 5:#转换小数部分,保留5位小数
p = math.modf(a2*N)#乘N取整
p1 = int(p[1])
xlist.append(p1)
print("".join(map(str,zlist[::-1])) + "." + "".join(map(str,xlist)))#整数部分逆序输出,小数部分顺序不变