C#:
Округление чисел
Как это сделать:
Вот кругосветное путешествие по округлению чисел в C#:
using System;
public class RoundingExamples
{
public static void Main()
{
double originalNumber = 123.4567;
// Округление до ближайшего целого числа
double rounded = Math.Round(originalNumber);
Console.WriteLine(rounded); // Вывод: 123
// Указываем количество десятичных знаков
double roundedTwoDecimalPlaces = Math.Round(originalNumber, 2);
Console.WriteLine(roundedTwoDecimalPlaces); // Вывод: 123.46
// Округление в большую сторону независимо от следующей цифры
double roundedUp = Math.Ceiling(originalNumber);
Console.WriteLine(roundedUp); // Вывод: 124
// Округление в меньшую сторону независимо от следующей цифры
double roundedDown = Math.Floor(originalNumber);
Console.WriteLine(roundedDown); // Вывод: 123
}
}
Глубокое погружение
В старые времена округление было очевидным способом сокращения вычислительных затрат. Каждый цикл имел значение, и урезание чисел экономило драгоценное время. Дошли до современного C#, и речь идет о управлении печально известной предрасположенностью double
и decimal
к ошибкам точности и отображения.
Помимо Math.Round
, Math.Floor
и Math.Ceiling
, перечисление MidpointRounding
позволяет нам решать судьбу несчастных, сидящих посередине цифр — это перекресток между банковскими правилами и справедливостью игровой площадки “округлить к половине вверх”.
Для более требовательных задач, например, в серьезных математических или финансовых приложениях, мы выбираем decimal
вместо double
, сокращая драму округления за счет более высокой точности — меньше округлений, меньше проблем.