Как в цикле разделить для каждой видеокарты память?

265
22 марта 2017, 14:34
private static int int1024 = 1048576;
ManagementObjectSearcher Vd 
= new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_VideoController");
    ManagementObjectCollection Video = Vd.Get();
                foreach (ManagementObject w in Video)
                {
                    string gpuTotalMem = String.Format("{0} ", (Convert.ToDouble(w["AdapterRam"]) / int1024).ToString());
                    if (w["Caption"] != null)
                    StringBild.AppendFormat("Ваша Видеокарта: {0} :  {1} [Bytes]", w["Caption"], gpuTotalMem);
                }

Для 2-ой показывает (2176 МБ) - тут нормально!

А для 1-ой показывает (2048 MB) - А тут должно быть 2 ГБ

Как показывает у меня:

Ваша Видеокарта: NVIDIA GeForce GTX 860M - (2048 MB)

Ваша Видеокарта: Intel(R) HD Graphics 4600 - (2176 MB)

Answer 1

Проверяем, есть ли остаток от деления 1024. Если остатка нет, то делим ещё на 1024 и приписываем " ГБ". Ели есть остаток от деления, то приписываем " МБ".

 foreach (ManagementObject w in Video)
            {
                string gpuTotalMem;
                if((Convert.ToDouble(w["AdapterRam"]) / int1024) % 1024 == 0){
                    gpuTotalMem = ((Convert.ToDouble(w["AdapterRam"]) / int1024) / 1024).ToString() + " ГБ";
                } else {
                    gpuTotalMem = (Convert.ToDouble(w["AdapterRam"]) / int1024).ToString() + " МБ";
                }
                if (w["Caption"] != null)
                StringBild.AppendFormat("Ваша Видеокарта: {0} :  {1} ", w["Caption"], gpuTotalMem);
            }
READ ALSO
SharpZipLib. Создание архива файлов в цикле

SharpZipLib. Создание архива файлов в цикле

Добрый день! Использую для создание архива библиотеку SharpZipLibНе получается в цикл передать список файлов и создать архив

258
Как применять unit test к ASP.NET MVC Database First

Как применять unit test к ASP.NET MVC Database First

В контроллере есть метод добавления новой записи в базу

208
Паттерн MVP для Windows Forms

Паттерн MVP для Windows Forms

У меня есть небольшой проект, который я хочу переписать, используя паттерн MVPПроект на платформе Windows Forms

274
Как соединить две окружности прямой

Как соединить две окружности прямой

Имеются две окружности одного радиуса R с центрами в точках x1, y1; x2, y2, с произвольным расположением

264