Результат: ученик выполняет числовые преобразования в осмысленной точке вычисления, применяет операции Math, выбирает правило округления и отделяет хранимое значение от его пользовательского или машинного представления.

Содержание:

  1. Различить неявные и явные преобразования

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

    • знаковые и беззнаковые диапазоны;
    • сужение и отбрасывание старших битов в непроверяемом контексте;
    • использование checked для обнаружения непредставимого результата;
    • преобразование до арифметической операции, а не только после неё.
  3. Проследить преобразование дробных типов

    • целое в float, double и decimal;
    • дробное значение в целый тип с отбрасыванием дробной части;
    • потеря точности при переходе к менее точному типу;
    • явная граница между decimal и двоичными дробными типами;
    • недопустимость преобразования как замены предметной проверки диапазона.
  4. Использовать базовые операции Math

    • Abs, Min, Max и Clamp;
    • Pow, Sqrt и другие требуемые функцией задачи операции;
    • Floor, Ceiling и Truncate;
    • предусловия математической операции;
    • проверка конечности и представимости результата.
  5. Выбирать правило округления

    • Math.Round; число знаков;
    • MidpointRounding; банковское и направленное округление;
    • различие округления, усечения, пола и потолка;
    • округление только в предметно определённой точке;
    • опасность повторного округления промежуточных результатов.
  6. Отделить значение от представления

    • интерполяция строк;
    • стандартные форматы G, F, N, E, P и X;
    • форматирование числа без изменения хранимого значения;
    • машинное представление и человекочитаемый отчёт;
    • явное указание числа знаков только при наличии требования.
  7. Управлять культурой форматирования

    • текущая культура пользователя;
    • CultureInfo.InvariantCulture для машинных данных;
    • десятичный разделитель и разделитель групп;
    • согласование культуры записи и последующего разбора;
    • устойчивое представление для контрольных и файловых данных.
  8. Проверять полную цепочку вычисления

    • тип каждого промежуточного выражения;
    • место явного преобразования;
    • момент округления;
    • формат вывода;
    • независимое восстановление либо проверка результата.