2017-06-21 6 views
3

Ich weiß nicht, ob ich meine Frage richtig stelle, aber ich möchte wissen, ob es für mich möglich ist, zwei Zahlen zu multiplizieren und eine Dezimalzahl abhängig von der Länge der Nummer?Zahlen multiplizieren und die Zahl mit einer Dezimalzahl zurückgeben

ich derzeit tue so etwas wie dieses

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

    return num 

multiply(225, 10) 

Statt etwas wie 2250 zurückzukehren, wird Ich mag so etwas wie 2.25k zurückzukehren. Gibt es eine eingebaute Funktion in Python, um dies zu erreichen?

Vielen Dank.

Jetzt bin ich zur Zeit so etwas wie dieses

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) 
tun

Wie effizient ist das?

+0

Wenn Sie eine eingebaute Funktion suchen, können Sie versuchen, '„{: 0.3e}“. Format (2250) 'oder irgendein' num' anstelle von '2250'. Nicht genau Ihre Anforderung, aber könnte nützlich sein – nikpod

+0

Mögliches Duplikat von [Python-Bibliothek zum Konvertieren zwischen SI-Einheiten-Präfixe] (https://stackoverflow.com/questions/10969759/python-library-to-convert-between-si-unit- Präfixe) –

Antwort

1

Wenn Sie ein einfaches Beispiel dafür, wie wollen dies geschehen kann, einen Blick darauf werfen,

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' 
Verwandte Themen