2017-06-21 62 views
3

我不知道我是否问我的问题是正确的,但我想知道它是否可能为我乘以两个数字,并根据长度数?乘以数字并用小数返回数字

我目前做这样的事情

def multiply(input1, input1): 
    num = (input1 * input1) 
    if len(str(num)) == 4 and str(num).isdigit(): 
     print(num) 

    return num 

multiply(225, 10) 

而是像2250返回的东西,我会想返回类似2.25k。是否有一个内置的Python函数来实现这个功能?

谢谢。

现在我正在做这样的

from __future__ import division 
    def multiply(string1, string2): 
     num = (string1 * string2) 
     if len(str(num)) == 4 and str(num).isdigit(): 
      num = format(num/1000, '.2f') 
      print(num + "k") 
     elif len(str(num)) == 5 and str(num).isdigit(): 
      num = format(num/1000, '.1f') 
      print(num + "k") 
     return num 
multiply(225, 10) 

如何有效的是这个东西吗?

+0

如果你正在寻找一个内置的功能,你可以试试'“{:0.3e}”。格式( 2250)'或者任何'num'来代替'2250'。不完全是您的要求,但可能有用 – nikpod

+0

[Python库在SI单位前缀之间转换]的可能重复(https://stackoverflow.com/questions/10969759/python-library-to-convert-between-si-unit-前缀) –

回答

1

如果你想如何可以做到这一点简单的例子,看一看,

def m(a, b): 
    num = float(a * b) 

    if num/1000 > 1: 
     return str(num/1000) + "k" 
    else: 
     return num 

>>> m(225, 10) 
'2.25k'