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.

Другие вопросы по тегам