在十进制前后交换数字

2024-09-28 23:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个函数,它接受一个正数,交换小数点前后的数字,并将其作为字符串返回。如果输入为整数,则返回的字符串以“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 

我哪里出了问题


Tags: 函数字符串gtreturndef数字整数float
3条回答

如果您只想拆分十进制前后的值,我建议将其作为字符串进行类型转换,然后使用“.”作为分隔符进行拆分。然后交换这两个值并在相加时返回结果。下面是一个例子

def float_swap(x):
    a = float(x)
    a, b = str(a).split('.')
    return b + '.' + a

然后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('.')]

相关问题 更多 >