• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

формат вывода числа

  • Автор темы sum44
  • Дата начала
S

sum44

Помогите пожалуйста решить проблему.
Мне нужно вывести на экран объем жесткого диска в гигабайтах.
вот код:
Код:
unsigned long SectorsPerCluster;  
unsigned long BytesPerSector;
unsigned long NumberOfFreeClusters;
unsigned long TotalNumberOfClusters;

BOOL GetDiskFreeSpaceFlag = GetDiskFreeSpace (
dd,
&SectorsPerCluster,
&BytesPerSector,
&NumberOfFreeClusters,
&TotalNumberOfClusters);

float cluster;
cluster = SectorsPerCluster*BytesPerSector;

unsigned float volume;
volume = (TotalNumberOfClusters*(cluster/1024))/1024/1024;

if(GetDiskFreeSpaceFlag != 0) 
{
cout << "Volume of disk = " << volume << " Gb" << endl;	
}
Проблема в том, что объем выводится целым числом, а мне нужно сделать вывод с одним символом после запятой.
например у меня раздел С занимает 11.7 Гб, а моя прога выводит 11 Гб.
Прочитал про потоки и форматы вывода, но у меня ничего не получилось.
Объясните пожалуйста как это сделать.
 
D

Dimmuborgir

Код:
unsigned float volume;

впервые встречю unsigned для числа с плавающей точкой. Убрал unsigned и у меня на VC++ 6.0 работает.
 
S

sum44

спасибо, решил проблему через
Код:
printf("%.1f",(TotalNumberOfClusters*(cluster/1024))/del/del);
//
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!