Smalltalk использование printFormat: метод
Может кто-нибудь дать мне пример того, как использовать метод printFormat: в Smalltalk для форматирования строки?
Например:
'123456789' printFormat: aFormat должен возвращать что-то вроде $123 456 789,00
2 ответа
Обычный способ найти примеры использования метода в smalltalk - выбрать его и затем искать отправителей. Для большинства маленьких звонков (VW, Squeak, Pharo, Dolphin, Amber и т. Д.) Есть сочетание клавиш.
Если число слишком велико, вы можете взглянуть на разработчиков.
Smalltalk часто имеет мало справочного текста и комментариев, но много реального кода с использованием определенной конструкции.
Мы стараемся избегать использования поплавков в валютных расчетах. ScaledDecimals работают лучше, и вы можете захотеть создать настоящий класс Money
[VIsualWorks] Pls, смотрите в Class NumberPrintPolicy. Этот класс имеет хорошие комментарии. В вашем случае решение может быть следующим:
(NumberPrintPolicy defaultInstance)
thousandsSeparator: $,;
decimalPoint: $..
NumberPrintPolicy print: 123456789 using: '$#,###.00'
Я изменил,000Separator и DecimalPoint, потому что у меня есть русская локаль по умолчанию в VisualWorks с другими значениями тысяч Separator и DecimalPoint.