我有一个函数接受浮点参数(通常是整数或有一个有效数字的小数),我需要在一个有两位小数的字符串中输出值(5→5.00,5.5→5.50等)。如何在Python中做到这一点?
你可以使用字符串格式化操作符:
>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'
操作符的结果是一个字符串,所以你可以把它存储在一个变量中,打印等等。
f-string格式:
这是Python 3.6中的新功能——字符串像往常一样放在引号中,前面加上f'…以同样的方式你会……对于一个原始字符串。然后你在字符串中放入你想要放入的任何东西,变量,数字,括号内的一些字符串文本,在该文本中带有{variable}或{number}——Python的计算方法与以前的字符串格式化方法一样,只是这个方法可读性更高。
>>> foobar = 3.141592
>>> print(f'My number is {foobar:.2f} - look at the nice rounding!')
My number is 3.14 - look at the nice rounding!
在这个示例中,您可以看到我们使用与前面的字符串格式化方法类似的方式对小数进行格式化。
foobar可以是一个数字,变量,甚至是一个表达式,例如f'{3*my_func(3.14):02f}'。
展望未来,在新的代码中,我更喜欢f-字符串而不是普通的%s或str.format()方法,因为f-字符串可以更易于阅读,而且通常更快。
如果你真的想改变数字本身,而不是仅仅以不同的方式显示它,请使用format()
格式为小数点后2位:
format(value, '.2f')
例子:
>>> format(5.00000, '.2f')
'5.00'
我知道这是一个老问题,但我自己也在努力寻找答案。以下是我的想法:
Python 3:
>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict)
0.12_0.13
字符串格式:
a = 6.789809823
print('%.2f' %a)
OR
print ("{0:.2f}".format(a))
Round函数可以使用:
print(round(a, 2))
round()的好处是,我们可以将这个结果存储到另一个变量中,然后将它用于其他目的。
b = round(a, 2)
print(b)
使用round() -主要用于显示目的。
如果你想在调用输入时得到一个小数点后两位有限制的浮点值,
看看这个~
a = eval(format(float(input()), '.2f')) # if u feed 3.1415 for 'a'.
print(a) # output 3.14 will be printed.
经过一些积累,我遇到了这个问题。所以我学到的是把你想要的数字相乘,最后除以相同的数字。所以它应该是这样的:(100(x+y))/100 = x+y如果你的数字是0.01 20.1 3 05。 如果您的数字是未知的,您可以使用number * (len(number)-1)**10。
推荐文章
- Pandas和NumPy+SciPy在Python中的区别是什么?
- 将列表转换为集合会改变元素的顺序
- 如何创建一个日期对象从字符串在javascript
- 如何在matplotlib更新一个情节
- TypeError: ` NoneType `对象在Python中不可迭代
- 在Android上将字符串转换为整数
- 如何在Vim注释掉一个Python代码块
- python标准库中的装饰符(特别是@deprecated)
- 如何从外部访问本地Django web服务器
- 删除字符串的最后3个字符
- 在python中执行no-op的标准方法是什么?
- 如何从生成器构建numpy数组?
- 什么时候我应该(不)想要在我的代码中使用熊猫apply() ?
- 数据类vs类型。NamedTuple主要用例
- 如何从macOS完全卸载蟒蛇