Как я получаю название процесса открытого порта в C#?

@jatan

спасибо за Вас ответ.Все понятно. Можно ли объяснить меня MathContext в контексте метода BigDecimal#round.

нет ничего специального [приблизительно 112] по сравнению с [1 125] никакой другой BigDecimal метод. Во всех случаях, эти MathContext определяет число значащих цифр и округляющейся техники. В основном существует две части каждого MathContext . Существует точность, и существует также RoundingMode .

точность снова определяет число значащих цифр. Таким образом, если Вы определяете 123 как число и просите 2 значащих цифры, Вы собираетесь добраться 120. Могло бы быть более ясно, думаете ли Вы с точки зрения экспоненциального представления.

123 был бы 1.23e2 в экспоненциальном представлении. Если Вы только сохраняете 2 значащих цифры, то Вы добираетесь 1.2e2, или 120. Путем сокращения количества значащих цифр мы уменьшаем точность, с которой мы можем определить число.

RoundingMode часть определяет, как мы должны обработать потерю точности. Для многократного использования примера, если Вы используете 123 в качестве числа и просите 2 значащих цифры, Вы уменьшили свою точность. С RoundingMode из [1 116] (режим по умолчанию), 123 станет 120. С RoundingMode из [1 120], Вы доберетесь 130.

, Например:

System.out.println(new BigDecimal("123.4",
                   new MathContext(4,RoundingMode.HALF_UP)));
System.out.println(new BigDecimal("123.4",
                   new MathContext(2,RoundingMode.HALF_UP)));
System.out.println(new BigDecimal("123.4",
                   new MathContext(2,RoundingMode.CEILING)));
System.out.println(new BigDecimal("123.4",
                   new MathContext(1,RoundingMode.CEILING)));

Выводы:

123.4
1.2E+2
1.3E+2
2E+2

Вы видите, что и точность и округляющийся режим влияют на вывод.

11
задан Austin Salonen 4 November 2009 в 16:43
поделиться