実際のタスク:私自身の実装のマトリックスを人が読める形式で印刷したいと思います。前提条件として、「数値表現をX文字に合わせる」ことを指定できる必要があると考えました。 #printShowingDecimalPlaces:
と#printPaddedWith:to:
は、Float
とInteger
クラス(最初の方法はもっと一般的にはNumber
クラス)にあります。個別に、彼らは動作しますが、小数、例えば前の部分にのみ小数部の旧作品と後者: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'"
はまた、科学的な形で、非常に大きな(または同等に小さい数)に対する作用は理想的ではありません:
12.3e9 printShowingDecimalPlaces: 3.
"'12300000000.000'"
12.3e9 printPaddedWith: Character space to: 5.
"' 1.23e10'"
だから、私はそれは、(a)は、10文字までの全体の幅を制限し、(b)の数の大きさに応じた最適なフォーマットを選択し、Common Lispの(FORMAT T "~10g" 12.3d9)
またはCのprintf("%10g", 12.3e9)
ような何かをしたいと思います。ファロにこういうことがありますか?多彩な印刷オプションについて
ありがとう:
多かれ少なかれグラム形式に相当するものは、このようなものになるだろう!これまでのところ動作します。 '(FloatPrinter freeFormat)totalWidth:n; print:x'は私が探していたものです。 – mobiuseng