Конвертировать double в BigDecimal и установить точность BigDecimal
В 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
) и при преобразовании двойного в строковое будет производиться научное обозначение-1.2E-4
, Я хочу хранить строковое значение в ненаучной записи.
Я хочу, чтобы BigDecimal всегда имел две единицы точности, например: "47,48". Может ли BigDecimal ограничить точность при преобразовании в строку?