19 NİSAN 2013, Cuma
Nasıl baskı bilimsel gösterim Java kullanmadan değeri iki katına?
Üstel formu olmadan yazdırma Java çift bir değer istiyorum.
double dnexp = 12345678;
System.out.println("dexp: " dexp);
Bu E gösterimde gösterir: 1.2345678E7
.
Bu gibi yazdırmak istiyorum: 12345678
Bunu önlemek için en iyi yolu nedir?
CEVAP
5 Ocak 2014, Pazar
Java bir çift E gösterim önlemek:
Beş farklı şekilde normal bir sayı için bir çift dönüştürmek için:
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class Runner {
public static void main(String[] args) {
double myvalue = 0.00000021d;
//Option 1 Print bare double.
System.out.println(myvalue);
//Option2, use decimalFormat.
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(8);
System.out.println(df.format(myvalue));
//Option 3, use printf.
System.out.printf("%.9f", myvalue);
System.out.println();
//Option 4, convert toBigDecimal and ask for toPlainString().
System.out.println(new BigDecimal(myvalue).toPlainString());
System.out.println();
//Option 5, String.format
System.out.println(String.format("%.12f", myvalue));
}
}
Bu program baskılar
2.1E-7
.00000021
0.000000210
0.000000210000000000000001085015324114868562332958390470594167709350585
0.000000210000
Aynı değerde olan.
Protip: Eğer bu rastgele çift haneli değeri belli bir eşik ötesinde görünür neden olarak şaşkın iseniz, bu video açıklıyor: neden 0.1 0.2 0.30000000000001 eşit oluyor ? computerphile
Bunu Paylaş:
Nasıl bir değeri, bir java hashmap bir...
Nasıl Dize değeri bir Java numaralama ...
Nasıl sp değeri java kodu kullanarak m...
Nasıl baskı veya CGSize nesne değeri g...
Nasıl Java null olmayan ilk değeri alm...