Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

printf и ,

0 views
Skip to first unread message

Yaroslav Bilozor

unread,
Oct 12, 2006, 12:20:31 PM10/12/06
to
Я Вас категорически приветствую!

подскажите про такое интересное поведение флага "," метода printf:

флаг "," дает следующий результат при печати:

printf("%s %,.2f", sFoo, fFoo );

vsego 1а000,00
^

почему в качестве разделителя печатается "а", а не пробел?

Пока, уважаемый. [aslav(at)inbox,ru] [ICQ 120557239] [http://aslav.obninsk.ru]

np: Titan - The power of Athlon.

Roman Dawydkin

unread,
Oct 13, 2006, 12:30:12 AM10/13/06
to
[Thu 12-Oct-2006 21:20] Yaroslav Bilozor ==> All

YB> подскажите про такое интересное поведение флага "," метода printf:
YB> флаг "," дает следующий результат при печати:
YB> printf("%s %,.2f", sFoo, fFoo );
YB> vsego 1а000,00
YB> ^
YB> почему в качестве разделителя печатается "а", а не пробел?

Это символ \u00A0, неразрывный пробел. Все методы System.out.print* под
Windows с русской локалью работают с системной кодировкой по умолчанию Cp1251,
а ты её рассматриваешь в консоли в Dos'овской кодировке (Cp866).
Если позарез нужна консоль, то правильней примерно так:
String s = String.format("%s %,.2f", sFoo, fFoo);
System.out.write(s.getBytes("Cp866"));
Hу или в JavaSE 6 появился класс Console.

... mail/jabber: tanmatra{at}gmail{dot}com, ICQ# 223012120

0 new messages