В Java я хочу взять двойное значение и преобразовать его в BigDecimal
и распечатать его значение String с определенной точностью.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
double d=-.00012;
System.out.println(d+""); //This prints -1.2E-4
double c=47.48000;
BigDecimal b = new BigDecimal(c);
System.out.println(b.toString());
//This prints 47.47999999999999687361196265555918216705322265625
}
}
Он печатает эту огромную вещь:
47,47999999999999687361196265555918216705322265625
а не
47.48
Причина, по которой я делаю преобразование BigDecimal
, иногда двойное значение будет содержать много десятичных знаков (т.е. -.000012
), а при преобразовании double в String будет выдано научное обозначение -1.2E-4
. Я хочу сохранить значение String в ненаучной нотации.
Я хочу, чтобы BigDecimal всегда имел две единицы точности: "47.48". Может ли BigDecimal ограничить точность при преобразовании в строку?