Как следует из названия, я хочу ограничить количество знаков после запятой в результате операции с переменными типа double, этот результат отображается в JTextArea JFrame.
Код, который выполняет операцию и печатает результат в JTextArea, выглядит следующим образом: ( la
, lb
и lc
представляет стороны треугольника, a
вычисляет площадь и A
является JTextArea, где печатается результат).
if (lb+lc>la && la+lc>lb && la+lb>lc){
a=Math.sqrt((la+lb+lc)*(-la+lb+lc)*(la-lb+lc)*(la+lb-lc)/16);
p=la+lb+lc;
A.setText("El triangulo es "+t+".\nEl area es ("+a+").\nEl perimetro es ("+p+").");
Существует множество способов ограничить количество выводимых десятичных знаков (представление) a
double
, но не само число, например,double number = 1.4159999999;
ограничить вывод двумя десятичными знаками. если вам нужно больше цифр, нужно добавить нули в String.formatdecimalformat
и printf setScale BigDecimal`Round, cambiar el 2 por por la cantidad deseada en
y
Y y en
de
Использование десятичного формата
Использование String.Format
Если вы просто хотите, чтобы вывод имел этот формат, вы должны применить числовой формат
Использование Math.Round() , где количество нулей — это количество знаков после запятой для ограничения
Использование класса BigDecimal , использование метода setScale , который получает два параметра: количество знаков после запятой для ограничения и режим округления
Попробуйте использовать String.format
Вы можете комбинировать все так, в данном случае это компактная форма, которая позволяет форматировать все вместе в одной строке.
Обратите внимание, что формат автоматически принимает региональные настройки, поэтому в зависимости от страны вы можете использовать
.
или,
в качестве десятичного разделителя.Вы можете использовать
DecimalFormat
. Например:Он вернет ваше значение с точностью до трех знаков после запятой. Вам нужно будет добавить (или удалить) столько нулей, сколько десятичных знаков вы хотите после целого числа.
Лучшее, что я нашел, чтобы уменьшить количество знаков после запятой в двойном:
число: значение со всеми десятичными знаками
numberDecimals: сколько десятичных знаков я хочу получить
Например: 2.8049999999999997 возвращает 2.805
double val = formatDecimals(2.8049999999999997, 3);
Если вы хотите ограничить количество неокругленных десятичных знаков, вы можете сделать это следующим образом: