【问题标题】:How to convert a number based on milimeter to a number that says which part is meter , centimeter and milimeter?如何将基于毫米的数字转换为表示哪个部分是米、厘米和毫米的数字?
【发布时间】:2020-11-23 20:39:47
【问题描述】:

我的代码尝试将数字转换为例如 XY 厘米和 Z 毫米。我的代码对于没有 out 的数字正常工作5782 之类的任何零,但是当涉及到零的数字时,它将无法正常工作

这是我的代码:

a = 2200
b = a / 1000
print(float(b))
b = str(float(b)).split(".") 
first = b[0] 
print(first,b[1])

c = (float(b[1])/10)
print(c)
c = str(c).split(".")
print(c)

second = (c[0])
third = (c[1])



print("%s Meter %s centimeter %s milimeter"%(first,second,third))
 

结果必须像 2 米 20 厘米 0 毫米,但它给了我 2 米 0 厘米 2 毫米

我该如何解决这些问题?

【问题讨论】:

    标签: python type-conversion typeconverter


    【解决方案1】:

    你使用整数除法:

    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
    

    【讨论】:

    • @mega 你的也很好,这只是......更简单
    【解决方案2】:

    你真的,真的,真的不应该使用intstr 的转换和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)
    

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多