SORU
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

http://youtube.com/watch?v=PZRI1IfStY0

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hot For Nutrition

    Hot For Nutr

    26 ŞUBAT 2007
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010
  • Top10Series

    Top10Series

    26 Kasım 2008