Aktuelle Aufgabe: Ich möchte die Matrix (meiner eigenen Implementierung) in einem für Menschen lesbaren Format drucken. Als Voraussetzung, dachte ich mir, ich muss in der Lage sein, "passen Sie die Zahl Darstellung in X-Zeichen". Ich fand #printShowingDecimalPlaces:
und #printPaddedWith:to:
in Float
und Integer
Klassen (die erste Methode ist in allgemeiner Number
Klasse). Individuell, sie arbeiten, aber die früheren Arbeiten auf Bruchteil nur und das letztere auf einem Teil vor fraktionierte, zB:So drucken Sie eine Nummer mit festen Zeichen in Smalltalk/Pharo
10.3 printPaddedWith: Character space to: 5.
"' 10.3'"
-10.3 printPaddedWith: Character space to: 5.
"' -10.3'"
10.3 printShowingDecimalPlaces: 3.
"'10.300'"
Auch ihre Wirkung auf sehr groß (oder ebenso kleine Zahlen) in der wissenschaftlichen Form ist nicht ideal :
12.3e9 printShowingDecimalPlaces: 3.
"'12300000000.000'"
12.3e9 printPaddedWith: Character space to: 5.
"' 1.23e10'"
Also, ich würde printf("%10g", 12.3e9)
so etwas wie Common Lisp des (FORMAT T "~10g" 12.3d9)
oder C ist wie beschränkt, dass (a) wählt die gesamte Breite zu 10 Zeichen und (b) der Anzahl der am besten geeigneten Format abhängig von der Größe. Gibt es so etwas in Pharo?
Dank! Bis jetzt funktioniert es. '(FloatPrinter freeFormat) totalWidth: n; print: x' ist was ich gesucht habe. – mobiuseng