Mengonversi String Java ke Double

1. Ikhtisar

Dalam tutorial ini, kami akan membahas banyak cara untuk mengubah String menjadi double di Java.

2. Double.parseDouble

Kita dapat mengubah String menjadi double menggunakan Double. metode parseDouble :

assertEquals(1.23, Double.parseDouble("1.23"), 0.000001);

3. Double.valueOf

Demikian pula, kita dapat mengubah String menjadi Double dalam kotak menggunakan metode Double.valueOf :

assertEquals(1.23, Double.valueOf("1.23"), 0.000001);

Perhatikan bahwa nilai yang dikembalikan dari Double.valueOf adalah kotak Double . Sejak Java 5, kotak Double ini diubah oleh compiler menjadi primitive double jika diperlukan.

Secara umum, kita sebaiknya memilih Double.parseDouble karena tidak memerlukan kompilator untuk melakukan unboxing otomatis.

4. DecimalFormat.parse

Ketika sebuah String yang merepresentasikan sebuah double memiliki format yang lebih kompleks, kita dapat menggunakan sebuah DecimalFormat .

Misalnya, kita dapat mengonversi nilai mata uang berbasis desimal tanpa menghapus simbol non-numerik:

DecimalFormat format = new DecimalFormat("\u00A4#,##0.00"); format.setParseBigDecimal(true); BigDecimal decimal = (BigDecimal) format.parse("-$1,000.57"); assertEquals(-1000.57, decimal.doubleValue(), 0.000001);

Mirip dengan Double.valueOf , metode DecimalFormat.parse mengembalikan sebuah Angka , yang bisa kita ubah menjadi primitif ganda menggunakan metode doubleValue . Selain itu, kami menggunakan metode setParseBigDecimal untuk memaksa DecimalFormat.parse mengembalikan BigDecimal .

Biasanya, DecimalFormat lebih maju dari yang kita butuhkan, oleh karena itu, kita sebaiknya memilih Double.parseDouble atau Double.valueOf .

Untuk mempelajari lebih lanjut tentang DecimalFormat , silakan lihat panduan praktis tentang DecimalFormat .

5. Konversi Tidak Valid

Java menyediakan antarmuka yang seragam untuk menangani String numerik yang tidak valid .

Khususnya, Double.parseDouble , Double.valueOf , dan DecimalFormat.parse menampilkan NullPointerException saat kami meneruskan null.

Demikian pula, Double.parseDouble dan Double.valueOf melontarkan NumberFormatException saat kita meneruskan String yang tidak valid yang tidak dapat diuraikan menjadi double (seperti & ).

Terakhir, DecimalFormat.parse melontarkan ParseException saat kita meneruskan String yang tidak valid .

6. Menghindari Konversi yang Tidak Berlaku Lagi

Sebelum Java 9, kita bisa membuat kotak Double dari String dengan membuat Double :

new Double("1.23");

Mulai versi 9, Java secara resmi menghentikan metode ini.

7. Kesimpulan

Kesimpulannya, Java memberi kita beberapa metode untuk mengubah String menjadi nilai ganda .

Secara umum, kami merekomendasikan penggunaan Double.parseDouble kecuali diperlukan kotak Double .

Kode sumber untuk artikel ini, termasuk contoh, dapat ditemukan di GitHub.