içinde sabit karakter sayısıyla bir sayı nasıl yazdırılır Gerçek görev: Matrisini (kendi uygulamamın) insanca okunabilir biçimde yazdırmak istiyorum. Önkoşul olarak, "sayı temsilini X karakterlerine sığdır" seçeneğini belirleyebilmem gerektiğini düşündüm. Float
ve Integer
sınıflarında #printShowingDecimalPlaces:
ve #printPaddedWith:to:
sınıflarını buldum (ilk yöntem daha genel Number
sınıfındadır). Bireysel, çalıştıkları fakat fraksiyonel, örneğin önceki kısım sadece fraksiyonel kısmında eski eserler ve ikincisi: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'"
Ayrıca bilimsel formda çok büyük (veya eşit az sayıda) kendi eylem ideal değildir :
12.3e9 printShowingDecimalPlaces: 3.
"'12300000000.000'"
12.3e9 printPaddedWith: Character space to: 5.
"' 1.23e10'"
Yani, (a) 10 karaktere bütün genişliğini kısıtlar ve (b) sayı boyutuna bağlı en uygun biçimi seçer, Ortak Lisp en (FORMAT T "~10g" 12.3d9)
veya C'ler printf("%10g", 12.3e9)
gibi bir şey istiyorum. Pharo'da böyle bir şey var mı? gerçi son Pharo sürümlerinde> '10 .30'
bunu deneyin vermedi - Çok yönlü baskı seçenekleri için
teşekkürler! Şimdiye kadar çalışıyor. (FloatPrinter freeFormat) totalWidth: n; print: x' aradığım şey. – mobiuseng