N进制转换

给定一个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)))#整数部分逆序输出,小数部分顺序不变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值