获取浮点数输入以打印为整数和小数

Getting a floating point number input to print out as integer and a decimal

我正在尝试让用户输入浮点数。然后我的程序应该将其打印为整数和小数。我正在寻找的是:

如果用户输入:1.34 ... 那么整数应该打印:1,小数应该打印:0.34

这是我正在做的事情:

number = float(input('Number: '))
print('integer: ', int(number))
print('decimal: ', number / 1))

我不知道如何四舍五入才能得到精确的 0.34。如果我应该在第 3 行再次将数字转换为浮点数或将原始数字除以 100 或其他数。

直接从原来的浮点数取整数(假设是正数)

number = float(input('Number: '))
print('integer: ', int(number))
print('decimal: ', number - int(number)))

是的,有时结果可能会稍微不准确。这是使用浮点数 here's an explanation 的结果。正如埃里克指出的那样,四舍五入到小数位是解决这个问题的方法,例如round(number - int(number), 10)

除法显然不是完美的解决方案,您可以按如下方式使用函数 round

number = str(round(float(input('Number: ')), 2))
integer, dec = number.split('.')

print(f'integer: {integer}, decimal: 0.{dec}')

输出:

Number: 1.2658
integer: 1, decimal: 0.27

考虑以下因素:

i,d=map(int, number.split('.') if '.' in number else [number, '0'])

涵盖整数而不强制用户输入 1.0