• Где можно наблюдать стримы по программированию?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    У себя дома:
    Системное под венду:
    - открываете 8 вкладок с MSDN, 4 со stackoverflow и иногда их скроллите.
    Системное под Linux:
    - открываете 8 вкладок со stackoverflow и консольку с man + исходники ядра
    Математическое:
    - открываете что угодно, все равно ничего не увидите - все самое интересное делается на бумажке, которая у стримящего лежит рядом с клавиатурой
    Высокопроизводительные вычисления, HPC, Нadoop:
    -купите 128 мониторов для начала
    Прикладное:
    - ну, вы знаете толк в извращениях, если хотите смотреть, как одинэсник пишет очередной унылый запрос на три листа, чтобы удовлетворить бухгалтершу.
    Ответ написан
    Комментировать
  • Как настроить базу?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    То, что вы хотите, реализуется tablespace`ами. "Зеркалирование" куда-то ещё - логической репликацией (обычная копирует все данные кластера).
    Ответ написан
    Комментировать
  • Проблема с конвертированием decimal в float?

    1) Во время преобразования числа с плавающей точкой в целое, дробная часть отбрасывается; никакого округления не производится. Статический класс System.Convert предоставляет методы, которые выполняют преобразования между различными числовыми типами с округлением.

    2) Неявное преобразование большого целочисленного типа в тип с плавающей точкой сохраняет величину, но иногда может приводить к потере точности. Причина в том, что типы с плавающей точкой всегда имеют большую величину, чем целочисленные типы, но могут иметь меньшую точность. Для демонстрации сказанного рассмотрим пример с большим числом:

        int i1 = 100000001;
        float f = i1;        // Величина сохраняется, точность теряется
        int i2 = (int)f;     // 100000000

    3) Ошибки округления вещественных чисел
    Типы float и double внутренне представляют числа в двоичной форме. По этой причине точно представляются только числа, которые могут быть выражены в двоичной системе счисления. На практике это означает, что большинство литералов с дробной частью (которые являются десятичными) не будут представлены точно.
    Например:

            float tenth = 0.1f;                            // Heточно 0.1
            float one = 1f;
            Console.WriteLine (one - tenth * 10f);        // -1.490116E-08

    Именно поэтому типы float и double не подходят для финансовых вычислений. В противоположность им тип decimal работает в десятичной системе счисления и, таким образом, может точно представлять числа, выразимые в десятичной системе (а также в системах счисления с основаниями-множителями 10 — двоичной и пятеричной). Поскольку вещественные литералы являются десятичными, тип decimal может точно представлять такие числа, как 0.1. Тем не менее, ни double, ни decimal не могут точно представить дробную часть, десятичное представление которой является периодическим:

        decimal m = 1M / 6M;    // 0.1666666666666666666666666667M
        double d = 1.0 / 6.0;    // 0.16666666666666666

    Это приводит к накапливающимся ошибкам округления:

        decimal notQuiteWholeM = m+m+m+m+m+m;     // 1.0000000000000000000000000002M
        double notQuiteWholeD = d+d+d+d+d+d;     // 0.99999999999999989

    которые нарушают работу операций эквивалентности и сравнения:

        Console.WriteLine (notQuiteWholeM == 1M);     // Выводит False
        Console.WriteLine (notQuiteWholeD < 1.0);/    / Выводит True

    Андерс Хейлсберг. Язык программирования C#, 4-е издание
    Ответ написан
    Комментировать