2017-01-06 2 views
0

Ich schreibe gerade ein Programm mit zwei Variablen in zufälliger und muss in einer Gleichung berechnet werden und wollen die ersten drei Zahlen holen und konvertieren sie in einen Prozentsatz, der folgende ist was Ich will, dass das Programm antwortetPython ~ Erste erste Zahlen von links nach rechts

Folgendes ist, was ich es aus dem Formular ausgeben möchte.

6920.157 to 69.2 
3561.356 to 35.6 
182435.24 to 18.2 

Gibt es eine eingebaute Funktion, die das erlaubt oder was kann ich tun? Danke dies für das Lesen und Verstehen mein schlechtes Englisch (sorry dafür)

Antwort

0

Angenommen, Ihre Ausgabe ist ein. Und Sie können dies tun:

>>> a = 6920.157 
>>> float(str(a)[:3])/10 
69.2 
+1

Das wird mit 'a = 0.14222222222222222' scheitern. Besser verwenden:' float ("% s.% S"% (str (a) [: 2], str a) [2: 3]) " –

0

Try this:

def convert(num): 
    while num > 100: 
     num /= 10.0; 
    return "%.1f" % num 

Ausgang:

print(convert(6920.157)) # Prints 69.2 
print(convert(3561.356)) # Prints 35.6 
print(convert(182435.24)) # Prints 18.2 
+0

Vielen Dank für die Antwort. Wenn ich diese Funktion jedoch mit Dezimalstellen versuche, gibt es ValueError zurück: ungültiges Literal für int() mit der Basis 10: '6920.15', wie würdest du Python auch sagen, dass das "." ist ein Dezimalpunkt? – rcw

0

Es gibt keine eingebaute Funktion, aber es ist einfach zu bespannen etwas zusammen mit ein paar Operationen.

Zuerst ist es, Ihre Zahl auf 2 signifikante Ziffern zu reduzieren. Sie können die Anzahl der signifikanten Stellen mit der Funktion log ermitteln und dann die Potenz verwenden, um die Größe zu erhalten. Beenden Sie es mit einer round, um eine Dezimalstelle nach der Ganzzahl zu erhalten.

digits = int(math.log(formular, 10)) + 1 
two_digits = formular/(10 ** (digits - 2)) 
print round(two_digits, 1) 
+0

Danke für die Antwort! Ich habe es versucht, aber es sagte formular ist nicht definiert. Muss ich das Formular importieren oder ist das nur eine Variable? – rcw

+0

@rcw es war nur eine Variable, die ich direkt von Ihrer Frage nahm. –

+0

@MarkRandom Oh, richtig, ich habe ein neues Dokument verwendet ... sorry – rcw

Verwandte Themen