Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Форматированый вывод: байты в килобайты


Автор: Alca 19.2.2009, 14:22
Форматированый вывод: байты в килобайты, с одним знаком после запятой.
Как такое замутить используя UnicodeString().sprintf()? 
Код

__int64 i64PicSize = 25811; //в байтах    
lblImgSize->Caption = UnicodeString().sprintf(L"Размер картинки: %i KB", i64PicSize / 1000);  
//получается 25 KB
//надо, чтоб получилось 25,8 KB


Автор: ksili 19.2.2009, 14:33
Вообще-то в килобайте 1024 байта...

Я бы использовал FormatFloat. В AnsiString такой метод есть. Там  с указанием кол-ва знаков после запятой проблем нет. Может и в UnicodeString такой метод есть?

Добавлено через 1 минуту и 27 секунд
ну или как вариант, можно попробовать:
Код

lblImgSize->Caption = UnicodeString().sprintf(L"Размер картинки: %d KB", (float)i64PicSize / 1024.);  

но я в использованиии sprintf не очень силен.

Автор: xvr 19.2.2009, 14:36
Код

sprintf(L"Размер картинки: %.1f KB", i64PicSize / 1024.); 

Автор: Alca 19.2.2009, 14:37
У меня так получилось:
Цитата

lblImgSize->Caption = UnicodeString().sprintf(L"Размер картинки: %.1f KB", i64PicSize / 1000.0);


Добавлено через 1 минуту и 17 секунд
Спасибо.

Добавлено через 6 минут и 2 секунды
Прикольная статейка:
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=1218

Автор: Dem_max 19.2.2009, 15:03
Цитата

Вообще-то в килобайте 1024 байта..

это ты производителям винчестеров скажи, ато они маркируют в неправильных гигабайтах

Автор: mrbrooks 19.2.2009, 15:09
Цитата(Dem_max @  19.2.2009,  15:03 Найти цитируемый пост)
это ты производителям винчестеров скажи, ато они маркируют в неправильных гигабайтах 

это к тому что покупаем к примеру 200 Гб, а в реале 195?

Автор: math64 19.2.2009, 15:33
Для различения были предложены в 1999г:
1 килобайт (1 kB) = 1000 байт
1 кибибайт (1 kiB) = 1024 байта
1 мегабайт (1 MB) = 1000000 байт
1 мебибайт (1 MiB) = 1048578 байт
и т.д.

Автор: mrbrooks 19.2.2009, 15:36
math64, не слабо. впервые слышу об этом. хм. уж всю жизнь думал, что 1 килобайт = 1024 байта и т.д.

Автор: math64 19.2.2009, 15:52
http://ru.wikipedia.org/wiki/Кибибайт

Автор: mrbrooks 19.2.2009, 16:01
Цитата(math64 @  19.2.2009,  15:52 Найти цитируемый пост)
http://ru.wikipedia.org/wiki/Кибибайт 

все вспомнил - первый курс. эх. давно это было.

Автор: Rififi 20.2.2009, 12:07
Dem_max, 
это ты производителям винчестеров скажи, ато они маркируют в неправильных гигабайтах 
а чё им говорить, они это и так знают. больше денег за меньше байтов! :gigi: вот и кибибайт пролоббировали для прикрытия... smile

Автор: Djinn 21.2.2009, 10:01
А эти кибибайты где используются ? только в внешних устройствах ? smile или в оперативной памяти и т. д. тоже так надо считать:
1mb = 1000kb... ???

Автор: Dem_max 21.2.2009, 11:50
Хорошо что ГОСТ однозначно решил что 1 килобайт = 1024 байтам, иначе бы интернет провайдеры считали бы по схеме 1 килобайт = 1000 байтам, что очень не выгодно клиентам.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)