如何显示小数点后两位的数字

问题描述:

我需要返回总是有2位小数的数字(不是字符串!),无论输入什么数字。例如:如何显示小数点后两位的数字

  • 86回报86.00
  • 3.12345回报3.12
  • 2.0回报2.00

的问题是,如果我使用Python的十进制模块,它返回Decimal('#'),而不是仅仅# (我只想要号码)。如果我改用"%.2f" % #,它会将该数字作为字符串返回,这不是我想要的,因为我无法对Python中的字符串进行任何数学运算。

+1

不能返回这样一个数字。 *表示*与*值*混淆。 '86.0'是一个浮点值,它将*从不*为小数点后两个零的数字。 –

+0

相反,您可以控制数字如何被打印*,因此您可以控制在需要显示数字时如何将它们转换为字符串。 –

x = 3.14159 
round(x, 2) 

给出3.14

+1

舍入为您提供了另一个浮动对象。整数不会显示2位小数,而浮点数*不是每个可能实数*的精确表示,这意味着舍入到两位数*仍然可以产生使用更多数字*的浮点数。 –

+0

是的,但没有精确到两位小数的类型。确切的唯一方法是使用一个移位两位小数的整数,但是没有一个数学方法可以在没有为这个类编写自定义的__mul__和__div__方法的情况下工作,所以这是最简单的方法。达成要求 –

+0

OP要求输入另一个号码。当然,一个浮点数仍然会使用更多的数字,这是一个浮点数,它永远不会是确切的,但它将精确到OP所使用的精度。 –