Python 如何将以毫米为单位的数字转换成表示米、厘米和毫米的数字?
我的代码尝试将一个数字转换为例如X米Y厘米和Z毫米。我的代码可以正确地处理没有零的数字,如5782,但当涉及到带零的数字时,它将无法正常工作 这是我的代码:Python 如何将以毫米为单位的数字转换成表示米、厘米和毫米的数字?,python,type-conversion,typeconverter,Python,Type Conversion,Typeconverter,我的代码尝试将一个数字转换为例如X米Y厘米和Z毫米。我的代码可以正确地处理没有零的数字,如5782,但当涉及到带零的数字时,它将无法正常工作 这是我的代码: a=2200 b=a/1000 打印(浮动(b)) b=str(float(b)).split(“.”) 第一个=b[0] 打印(第一,b[1]) c=(浮动(b[1])/10) 印刷品(c) c=str(c).拆分(“.”) 印刷品(c) 秒=(c[0]) 第三=(c[1]) 打印(“%s米%s厘米%s毫米”%(第一、第二、第三)) 结
a=2200
b=a/1000
打印(浮动(b))
b=str(float(b)).split(“.”)
第一个=b[0]
打印(第一,b[1])
c=(浮动(b[1])/10)
印刷品(c)
c=str(c).拆分(“.”)
印刷品(c)
秒=(c[0])
第三=(c[1])
打印(“%s米%s厘米%s毫米”%(第一、第二、第三))
结果必须像2米20厘米0毫米但是它给了我2米0厘米2毫米
我该怎么解决呢?你真的,真的,真的不应该使用int
到str
转换和split
方法来删除小数
所以,我看到你们在做的是毫米到米,厘米,毫米。我要做的是使用math.floor
删除小数点-
import math
a = 2200
meters = math.floor(a / 1000)
centimeters = math.floor((a - meters * 1000) / 10)
millimeters = math.floor(a - meters * 1000 - centimeters * 10)
print(meters, centimeters, millimeters)
你真的,真的,真的不应该使用int
到str
转换和split
方法来删除小数
所以,我看到你们在做的是毫米到米,厘米,毫米。我要做的是使用math.floor
删除小数点-
import math
a = 2200
meters = math.floor(a / 1000)
centimeters = math.floor((a - meters * 1000) / 10)
millimeters = math.floor(a - meters * 1000 - centimeters * 10)
print(meters, centimeters, millimeters)
使用整数除法:
print( 27 // 4 ) # prints 6 because 6*4 = 24 and 7*4 is too big
用整数除法计算2200mm(2)中的“满”米数,然后从mm
值中减去2*1000,继续cm
,剩下的是mm
mm = 2200 # startvalue in mm
m = mm // 1000 # how many full meters in mm?
mm -= m*1000 # reduce mm by amount of mm in full meters
cm = mm // 10 # how many full centimeter in mm?
mm -= cm*10 # reduce mm by amount of mm in full centimeters
print(f"{m} meter {cm} centimeter {mm} millimeter")
输出:
2 meters 20 centimeter 0 millimeter
如果要省略零值,则需要条件打印:
if m != 0:
print(f"{m} meter ", end="")
if cm != 0:
print(f"{cm} centimeter ", end="")
if mm != 0:
print(f"{mm} millimeter", end="")
print() # for the newline
使用整数除法:
print( 27 // 4 ) # prints 6 because 6*4 = 24 and 7*4 is too big
用整数除法计算2200mm(2)中的“满”米数,然后从mm
值中减去2*1000,继续cm
,剩下的是mm
mm = 2200 # startvalue in mm
m = mm // 1000 # how many full meters in mm?
mm -= m*1000 # reduce mm by amount of mm in full meters
cm = mm // 10 # how many full centimeter in mm?
mm -= cm*10 # reduce mm by amount of mm in full centimeters
print(f"{m} meter {cm} centimeter {mm} millimeter")
输出:
2 meters 20 centimeter 0 millimeter
如果要省略零值,则需要条件打印:
if m != 0:
print(f"{m} meter ", end="")
if cm != 0:
print(f"{cm} centimeter ", end="")
if mm != 0:
print(f"{mm} millimeter", end="")
print() # for the newline
@你的也很好,这只是。。。simpler@mega你的也很好,这只是。。。简单的