2016-10-16 4 views
1

Mein Arbeitgeber hat vor kurzem von SAS auf SAS Enterprise Guide Version 7.12 gewechselt. Ich habe Code, den ich in der Vergangenheit ohne Problem ausgeführt habe, aber jetzt hat der gleiche Code Probleme beim Formatieren von Dollar-Beträgen mit Null-Cent. Ich benutze das Format dollar20.2. Wenn die Daten, mit denen ich arbeite, null Cent haben, wird die Dezimalstelle an der falschen Stelle platziert.SAS Dollar Format Verlust 0 Cent

Zum Beispiel 117650 wird 1,176.50 $ statt $ 117,650.00

+0

Sieht so aus, als ob eine Information von 20.2 angewendet wird - die .2 sagt SAS, dass es 2 Dezimalstellen geben muss. – Reeza

Antwort

2

Sieht aus wie Sie INFORMAT und FORMAT sind verwirrend. Die INFORMAT teilt SAS mit, wie Textstrings in Werte konvertiert werden, und das FORMAT teilt SAS mit, wie Werte in Textstrings konvertiert werden. Wenn Sie eine Nummer haben und das Format DOLLAR20.2 verwenden, werden die Daten mit zwei Dezimalstellen angezeigt. Aber wenn Sie Daten mit dem DOLLAR20.2 Informat lesen, dann sagen Sie SAS, dass, wenn diese Textzeichenfolge keine Dezimalstelle hat, angenommen wird, dass eine vor den letzten beiden Ziffern impliziert ist. Im Grunde wurde der Wert durch 100 geteilt. Im Allgemeinen ist es eine schlechte Idee, Dezimalstellen auf Ihrem INFORMAT anzugeben, es sei denn, Sie sind sicher, dass SAS den Dezimalpunkt liefern soll, wenn einer nicht vorhanden ist.

Sie möchten wahrscheinlich DOLLAR20. (oder den entsprechenden COMMA20.) als Ihre INFORMAT verwenden.

Verwandte Themen