【问题标题】:convert float value to str without rounding in python3在python3中将浮点值转换为字符串而不进行舍入
【发布时间】:2016-05-30 10:02:17
【问题描述】:

我有一个计算问题。

main_value = 4.4789

现在我想将此值与用户输入值进行比较

user_input = 4.5

if main_value >= user_input:
    print('yes')
else:
    print('no')

问题是我在 GUI 中以个位数精度显示 main_value (4.4789 被四舍五入并且显示值 = 4.5)

所以当进行比较时显示显示 4.5 但打印 NO...

我该如何解决这个问题!!!

我应该使用 Decimal 模块(请举个例子)还是任何其他简单的方法??

谢谢!!

【问题讨论】:

  • 你用的是什么图形用户界面?
  • PyQt,来自 QtDesigner 的 .ui 文件并导入它
  • 但是该方法将值四舍五入。我不想对值进行四舍五入。显示原样,保留 1 位小数。
  • 如果你停留在 Python on float 的自动回合下,可以使用str(f)[:str(f).index('.')+2]

标签: python-3.x floating-point decimal


【解决方案1】:
s[:s.index('.')+1+n]

s 是代表浮点数的字符串,n. 之后要保留的位数

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2011-11-25
    相关资源
    最近更新 更多