• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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);
//
 
Мы в соцсетях:

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