获取浮点数输入以打印为整数和小数
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
我正在尝试让用户输入浮点数。然后我的程序应该将其打印为整数和小数。我正在寻找的是:
如果用户输入: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