1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

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

  1. sum44

    sum44 Member

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

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

    sum44 Member

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

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