2017-03-25 1 views
0

Ich muss Zahlen wie 2530.30 mit 2599 in PostgreSQL ersetzen."Round" 2530.30 bis 2599 in Postgres

Ich versuchte mit ROUND(2530.30)+0.99, aber es ändert nur die Zahlen nach dem Dezimalpunkt zu 99. Es ergibt sich also 2530.99, was ich nicht will.

Ich möchte Nachkommastellen entfernen und die letzten zwei Dezimalziffern durch 99 ersetzen. Ich weiß, ich kann einfach eine integer verwenden, aber meine Aufgabe in der Schule sagt, dass ich dies tun muss.

Es sollte keine negativen Zahlen geben, die Zuweisung besagt, dass ich ein Produkt haben sollte, das für, sagen wir, 3500,50 Dollar verkauft wird, dann muss ich diese Zahl von 3500.50 zu 3599 gehen. Nicht 3500.99.

Antwort

1

durch 100 geteilt, gestutzt, mit 100 multiplizieren wieder:

SELECT trunc(2530.30/100) * 100 + 99; 

Dies ersetzt alle Zahlen im Bereich [2500, 2600) mit 2599.
Oder allgemeiner gesagt ersetzt es die letzten zwei Dezimalziffern durch 99 und verwirft die Nachkommastellen (die auch 0 oder 12.50 zu 99 umwandelt).

Negative Zahlen können nicht auftreten, wie Sie sagen, so ignoriert.

+0

Danke, es hat funktioniert! – StudentCoderJava