繁体   English   中英

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

[英]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)))

是的,有时结果可能有点不准确。 这是使用浮点数的结果,这里有一个解释 正如 Eric 指出的那样,四舍五入到几个小数位是一个解决方案,例如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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM