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

Тема в разделе "Общие вопросы по С и С++", создана пользователем sum44, 30 ноя 2008.

  1. sum44

    sum44 Member

    Регистрация:
    29 окт 2008
    Сообщения:
    23
    Симпатии:
    0
    Помогите пожалуйста решить проблему.
    Мне нужно вывести на экран объем жесткого диска в гигабайтах.
    вот код:
    Код (Text):
    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 Гб.
    Прочитал про потоки и форматы вывода, но у меня ничего не получилось.
    Объясните пожалуйста как это сделать.
     
  2. Dimmuborgir

    Dimmuborgir Гость

    Код (Text):
    unsigned float volume;
    впервые встречю unsigned для числа с плавающей точкой. Убрал unsigned и у меня на VC++ 6.0 работает.
     
  3. sum44

    sum44 Member

    Регистрация:
    29 окт 2008
    Сообщения:
    23
    Симпатии:
    0
    спасибо, решил проблему через
    Код (Text):
    printf("%.1f",(TotalNumberOfClusters*(cluster/1024))/del/del);
    //
     
Загрузка...

Поделиться этой страницей