2016-09-30 14 views
-2

gibt es eine Möglichkeit, den Wert auf die niedrigste Ganzzahl für diesen Wert zu runden?Mit arithmetischen Gleichungen in Python

x = 5.5 
z = 1 

x -= z 

x ist nur 4,5 in diesem Fall

aber ich möchte so etwas wie dieses

x = int(x - z) 

die x als 4 erzeugt, aber ich verwenden möchte die '- ='

gibt es einen Weg?

+3

Nein. Es gibt keine Möglichkeit, '- =' konvertieren, zum Glück. –

+0

'x int() - = z' (das ist ein Witz) – brianpck

+2

' x = int (x - z) 'wäre nicht weniger effizient, weil 'x - = z' sowieso ein neues Objekt erzeugen muss:' float' Werte sind unveränderlich. – chepner

Antwort

2

Nein leider gibt es keinen Weg genau das zu tun, was Sie beschrieben haben. Ihre beste Option wäre, x=int(x-z) zu tun, oder wenn Sie in dem Fall x=4.5 abgerundet werden und den float Typ, x=round(x-z) erhalten möchten.

0
x = 5.5 
a = 1 
x -= a 
x = int(x) 

Versuchen Sie dies. Es wird funktionieren

0

Sie können auch eine eigene Lösung verwenden:

import math 
math.floor(x-z) 

Es wird Ihnen immer Integer-Wert gibt niedriger (in der Tat wird es ein Schwimmer-Typ, aber mit einem ganzzahligen Wert sein).

Beachten Sie, dass für round(0.7) == 1.0 !!

Verwandte Themen