2024-09-28 23:29:38 发布
网友
我正在编写一个函数,它接受一个正数,交换小数点前后的数字,并将其作为字符串返回。如果输入为整数,则返回的字符串以“0”开头。即37->;0.37
def float_swap(x): a = x - int(x) b = int(x) return str(b+a) print(float_swap(2.5)) # 2.5
我哪里出了问题
如果您只想拆分十进制前后的值,我建议将其作为字符串进行类型转换,然后使用“.”作为分隔符进行拆分。然后交换这两个值并在相加时返回结果。下面是一个例子
def float_swap(x): a = float(x) a, b = str(a).split('.') return b + '.' + a
然后float_swap(2)返回0.2
float_swap(2)
0.2
def swap(num): num = str(float(num)) a, b = num.split('.') res = b + '.' + a return res print(swap(2)) # 0.2 print(swap(21.34)) # 34.21
错误的原因在前面的回答中给出。 如果您对解决方案感兴趣,可以执行以下操作:
def float_swap(x): s=str(float(x)) return s[s.find('.')+1:]+'.'+ s[:s.find('.')]
如果您只想拆分十进制前后的值,我建议将其作为字符串进行类型转换,然后使用“.”作为分隔符进行拆分。然后交换这两个值并在相加时返回结果。下面是一个例子
然后
float_swap(2)
返回0.2
错误的原因在前面的回答中给出。 如果您对解决方案感兴趣,可以执行以下操作:
相关问题 更多 >
编程相关推荐