如何在Python中显示数字中的最后2位数字

时间:2018-07-30 21:08:40

标签: python formatting

我正在尝试获取气压读数,并用最后两位数字显示出来。但是,当我使用模数时:

--> x = 1004
--> x % 100
--> 4

这只会生成4。 如何显示此数字以显示04而不是4?

谢谢!

8 个答案:

答案 0 :(得分:3)

如果您需要将其用作整数或浮点数,我认为这是不可能的。如果仅用于显示目的,请将其转换为字符串并采用最后2个字符:

app.component

答案 1 :(得分:3)

请尝试以下操作: str(x%100).zfill(2)

答案 2 :(得分:0)

您也可以使用字符串格式。

ans = 1004 % 100
format(ans, '03d')

有关字符串格式的更多信息,请参见:https://pyformat.info/

答案 3 :(得分:0)

最简单的方法是'%02d' % (x % 100)

答案 4 :(得分:0)

如果仅打印一个数字,它将以其默认格式打印出来。对于数字2,显然是2,而不是02

如果要指定自定义格式,则需要使用某种形式的字符串格式。 Python有几种实现方法。

格式化字符串

Format String Syntax函数,format方法,str.format子类和(此处略有不同,略有不同)Formatter函数,{{3} 3}}。

您可以指定width中的2,再加上align中的=(意思是数字对齐-在任何+或{{ 1}})和-中的fill。但是,还有一个特殊的快捷方式,其中在0之前放置0表示数字对齐的零填充。所以:

width

>>> f"{x % 100:02}" '02' >>> format(x % 100, '02') '02' >>> '{:02}'.format(x % 100) '02' 样式的字符串格式

Python有一种较旧但有时仍然有用的格式化方法, 1 与C语言和类似语言的匹配更紧密,调用了f-string literalsprintf-格式。

您可以指定%的{​​{1}}和width的{​​{1}}(表示数字零填充)以及{{1} 1}},以指定您要将数字设置为带符号的整数十进制格式:

2

尽管flag格式不像格式字符串那样灵活和强大,但有时它更易于理解(特别是如果您习惯使用C或其他语言),通常更快,并且可以与0type

手动字符串操作

最后,您始终可以将数字转换为字符串,然后在其上使用字符串方法。例如,您可以使用printf-style方法对字符串进行零填充:

d

…,或者您可以使用zfill方法以>>> "%02d" % (x % 100,) '02' 作为填充字符对其右对齐:

%

实际上,您无需计算余数,只需将整个内容转换为字符串,然后截断然后填零即可。

bytes

…尽管str可能不是您想要的,例如>>> str(x % 100).zfill(2) '02' (您将得到'0'而不是>>> str(x % 100).rjust(2, '0') '02' )。


1。实际上,它提供了两个较早的解决方案,另一个是rjust,但是这些解决方案并不常用。

答案 5 :(得分:0)

x = 1004
x = x % 100

str(x)

y = len(x)

if y == 0:
   end

elif y == 2:
   print (x)

elif y == 1:
   print ('0'x)

else:
   x = str(x)[-2:]
   print (x)

在此,我将其转换为字符串并计算了值的长度为“ y ”。使用基本的[ ifif else ]结构,我以您的格式的形式返回了值,但以 strings 的形式返回了。

不清楚要使用这些值的原因,因为如果希望它们代表数字,则可能需要编辑正在使用的任何输出应用程序的设置。一种替代解决方案是使用“ x”的值与字符串不同,以便无论打印时如何显示数字值,仍可以使用该数字值。 眨眼眨眼

答案 6 :(得分:0)

没有模数,没有 zfill。

"{:02d}".format(12345)[-2:]
#> 45

"{:02d}".format(0)[-2:]
#> 00

"{:02d}".format(-9876)[-2:]
#> 76

"{:02d}".format(-1)[-2:]
#> -1

答案 7 :(得分:-1)

使用模运算符查找最低两位有效数字的第一步是正确的。

然后,在打印结果时,您将需要使用格式字符串来填充结果。参见:Python format Integer into fixed length strings