Ich werde es bald vergessen, also werde ich es als Erinnerung aufschreiben. ** Es gibt rund () ** Das Runden nach dem Dezimalpunkt ist einfach, aber ich wusste es nicht.
python3
>>> a = 1
>>> b = 6
>>> a / b
0.16666666666666666
python3
>>> round((a / b), 1)
0.2
>>> round((a / b), 2)
0.17
>>> round((a / b), 3)
0.167
>>> round((a / b), 4)
0.1667
Es gab einen Mangel an Rücksichtnahme, also werde ich es hinzufügen.
In der Python3-Serie wurde es aufgrund der Fraktionsverarbeitung manchmal nicht gut gerundet. Hinweis, weil ich süchtig nach Rundung von Python3 war Diese Person wurde ebenfalls aufgelöst. Es war sehr hilfreich, einschließlich Erklärungen.
Zum Beispiel ist es so, dass Unannehmlichkeiten nur in einer Runde auftreten.
python3
>>> round(1.1115, 3)
1.111
>>> round(1.1125, 3)
1.113
Einschließlich solcher Fälle denke ich, dass es möglich ist, Float-Typen beliebiger Länge mit den folgenden Funktionen abzurunden.
python3
def custom_round(number, ndigits=0):
if type(number) == int:#Wenn es sich um eine Ganzzahl handelt, geben Sie sie unverändert zurück
return number
d_point = len(str(number).split('.')[1])#Definieren Sie, wie viele Stellen unter dem Dezimalpunkt liegen
if ndigits >= d_point:#Wenn der Wert nach dem gewünschten Dezimalpunkt größer als das Argument ist, geben Sie ihn unverändert zurück
return number
c = (10 ** d_point) * 2
#Wert für das Hinzufügen von 0 zur Anzahl der Stellen nach dem Dezimalpunkt, um eine Ganzzahl zu erstellen und diese zu verdoppeln(0.Wenn 01, ist c 200)
return round((number * c + 1) / c, ndigits)
#Addiere 0 zur ursprünglichen Zahl, um eine ganze Zahl zu bilden, verdopple sie, addiere 1 und dividiere durch 2. Die ursprüngliche Nummer ist 0.01 ist 0.Auf 015 setzen und Runde durchführen
Ausführungsbeispiel
>>> round(1.1115, 3)
1.111
>>> round(1.1125, 3)
1.113
>>>
>>> custom_round(1.1115, 3)
1.112
>>> custom_round(1.1125, 3)
1.113
>>> round(4.5)
4
>>> round(3.5)
4
>>> custom_round(4.5)
5.0
>>> custom_round(3.5)
4.0
[Python / Sample / Manipulation von Werten nach dem Dezimalpunkt, Runden, Runden und Abschneiden](http://ll.just4fun.biz/?Python/%E3%82%B5%E3%83%B3%E3%83%97 % E3% 83% AB /% E5% B0% 8F% E6% 95% B0% E7% 82% B9% E4% BB% A5% E4% B8% 8B% E3% 81% AE% E5% 80% A4% E3% 81% AE% E6% 93% 8D% E4% BD% 9C% E3% 83% BB% E5% 9B% 9B% E6% 8D% A8% E4% BA% 94% E5% 85% A5% E3% 82% 84% E5% 88% 87% E4% B8% 8A% E3% 81% 92% E3% 80% 81% E5% 88% 87% E6% 8D% A8% E3% 81% A6) Honke (2. Integrierte Funktion #round ()) Hinweis, weil ich süchtig nach Rundung von Python3 war
Recommended Posts