Come convertire una stringa 3.0103 E-7 a 0.00000030103 in Java?

Come convertire una stringa 0E-11 0.00000000000 in Java? Voglio visualizzare il numero non notazioni scientifiche. Ho provato a guardare il numero formatter in Java, ma ho bisogno di specifica l’esatto numero di cifre decimali che voglio, ma non voglio sempre sapere. Voglio semplicemente il numero di posizioni decimali, come specificato dal mio numero originale.

InformationsquelleAutor erotsppa | 2009-08-04



5 Replies
  1. 3

    Vorrei utilizzare BigDecimal.Passare una stringa come parametro e quindi utilizzare Stringa.formato per rappresentare il nuovo BigDecimal senza notazione scientifica.
    Float o Double, le classi possono essere usati anche.

  2. 9

    A quanto pare la risposta corretta è a utente BigDecimal e recuperare la precisione e la scala di numeri. Quindi utilizzare questi numeri il programma di formattazione. Qualcosa di simile simile a questo:

    BigDecimal bg = new BigDecimal(rs.getString(i));
    Formatter fmt = new Formatter();
    fmt.format("%." + bg.scale() + "f", bg);
    buf.append( fmt);
    • Questo è esattamente quello che ho suggerito 🙂
    • Sì, Eugene, ma il diavolo è nei dettagli; esempio di codice è di solito più utile di una descrizione. Per esempio, qualcuno mi ha suggerito di usare EXEC su una stored procedure in Oracle 10g). L’idea era corretta (usato una stored procedure, invece di una funzione), ma i dettagli (CHIAMATA vs EXEC) erano sbagliate. Come Torvalds ha detto una volta, “mi Mostra il codice”. lkml.org/lkml/2000/8/25/132
    • Stai scherzando? Che tipo di dettagli di cui avete bisogno? È molto semplice e già… l’intero affare è di circa idea. 🙂
  3. 4

    Utilizzando BigDecimal:

    public static String removeScientificNotation(String value)
    {
        return new BigDecimal(value).toPlainString();
    }
    
    public static void main(String[] arguments) throws Exception
    {
        System.out.println(removeScientificNotation("3.0103E-7"));
    }

    Stampa:

    0.00000030103
    • A quanto pare, questo è il solo risolvere il mio problema!
  4. 2
    double d = Double.parseDouble("7.399999999999985E-5");
    NumberFormat formatter = new DecimalFormat("###.#####");
    String f = formatter.format(d);
    System.out.println(f);    //output --> 0.00007

Lascia un commento