当前位置: 首页 > 面试题库 >

Python小数格式

袁和通
2023-03-14
问题内容

WHat是格式化python十进制格式的好方法吗?

1.00 - > ‘1’
1.20 - > ‘1.2’
1.23 - > ‘1.23’
1.234 - > ‘1.23’
1.2345 - > ‘1.23’


问题答案:

如果您拥有Python
2.6或更高版本,请使用format

'{0:.3g}'.format(num)

对于Python 2.5或更早版本:

'%.3g'%(num)

说明:

{0}告诉format打印第一个参数-在这种情况下为num

冒号(:)之后的所有内容均指定format_spec

.3 将精度设置为3。

g删除无关紧要的零。请参阅
http://en.wikipedia.org/wiki/Printf#fprintf

例如:

tests=[(1.00, '1'),
       (1.2, '1.2'),
       (1.23, '1.23'),
       (1.234, '1.23'),
       (1.2345, '1.23')]

for num, answer in tests:
    result = '{0:.3g}'.format(num)
    if result != answer:
        print('Error: {0} --> {1} != {2}'.format(num, result, answer))
        exit()
    else:
        print('{0} --> {1}'.format(num,result))

产量

1.0 --> 1
1.2 --> 1.2
1.23 --> 1.23
1.234 --> 1.23
1.2345 --> 1.23

使用Python
3.6或更高版本,您可以使用f-strings

In [40]: num = 1.234; f'{num:.3g}'
Out[40]: '1.23'


 类似资料:
  • 问题内容: 如何使用Python 3.0函数将小数点四舍五入到小数位数? 问题答案: 这是一个典型的有用示例…: 嵌套使用第二个参数,即n的当前值,并将其按指定的方式应用(此处为格式的“精度”部分- 小数点后的位数),然后应用外部结果。当然,你可以硬编码,如果你希望(数字或任何号码),但关键的问题是,你不 具备 对! 更好的…: …而不是阴暗“的说法号”,如0和1以上,你可以选择使用有光泽,论点明

  • 问题内容: 我在Python中有一些实例。我希望格式化它们 因此,请确保始终至少保留两个小数位,甚至可能更多。虽然不存在舍入到小数位的解决方案的短缺,但我找不到找到确保数字下限的整洁方法。 我当前的解决方案是计算: 并选择两者中较长的一个。但是,它似乎有些骇人听闻。 问题答案: 如果您希望避免出现字符串问题: 未经测试的代码,但它 应该可以 工作。 这是这样的: d = 12.345 100倍 1

  • 问题内容: 我要显示: 和: 不管小数点的长度或是否有小数位,我都希望显示一个带有2个小数位的,并且我想以一种有效的方式做到这一点。目的是显示货币值。 例如, 问题答案: 我想你可能正在使用模块中的对象?(如果你需要精确到小数点后两位任意大数的精度,则绝对应该如此,这就是你的问题标题所建议的……) 如果是这样,则文档的“ 十进制常见问题解答”部分将包含一个问题/答案对,这可能对你有用: 问:在具有

  • 问题内容: 我如何格式化大于24小时的timedelta以在Python中仅包含小时显示? 我通过以下方式达到目标: 有没有更好的办法? 问题答案: 可能定义继承的类会更加优雅

  • 我有功能: 我需要一个函数,在“number”参数-将接收一个小数,舍入到小数位数(缩放参数),并返回字符串中的结果。有人知道怎么做吗?

  • 问题内容: 我正在打印一个我不知道其值的数字。在大多数情况下,该数字为整数或结尾为0.5。在某些情况下,该数字以.25或.75结尾,而极少数情况下该数字达到千分之一。我该如何具体检测到最后一种情况?现在,我的代码检测到一个整数(0个小数位),精确地为0.5(1个小数位),然后在所有其他情况下恢复为2个小数点,但是当我需要这样做时,我需要将其改为3。 问题答案: A 使用二进制(IEEE 754)表