In Java, voglio prendere un doppio valore e convertirlo in un BigDecimal
e stampare il suo valore di stringa in una certa precisione.Converti double in BigDecimal e imposta BigDecimal Precision
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
}
}
Esso stampa questa cosa enorme:
47,47999999999999687361196265555918216705322265625
e non
47,48
La ragione per cui sto facendo la conversione BigDecimal
è a volte il doppio valore conterrà molte cifre decimali (ad es. -.000012
) e quando si converte il doppio in una stringa verrà generata la notazione scientifica -1.2E-4
. Voglio memorizzare il valore di stringa in notazione non scientifica.
Voglio che BigDecimal abbia sempre due unità di precisione come questa: "47.48". BigDecimal può limitare la precisione alla conversione in stringa?
Nota: BigDecimal anche a volte utilizzare la notazione scientifica (credo per numero <10^-6) – assylias