Плавание Problema al mostrar un numero en Java

танго плавание un problema al mostrar un numero de tipo, por ejemplo, СИ es 10000000000 я muestra 1E10. Como podria hacer para que me lo muestre tal cual lo pongo y никакая de форма exponencial?

Se agradece mucho su respuesta, saludos!

1
задан 19.12.2019, 13:53
3 ответа

Для таких больших чисел, если ты не хочешь потерять точность, ты можешь использовать java.math.BigDecimal:

import java.math.BigDecimal;

public class Prueba {
    public static void main (String[] args) {
        BigDecimal num = new BigDecimal("10000000000");
        num = num.add(new BigDecimal("1.7"));
        System.out.println(num); // 10000000001.7
    }
}

https://docs.oracle.com/javase/10/docs/api/java/math/BigDecimal.html

4
ответ дан 21.12.2019, 12:13

Я рекомендую тебе использовать один из formateadores, которые приходят в стандартном книжном магазине Java: NumberFormat или DecimalFormat (которые увеличивают первого):

NumberFormat nf = NumberFormat.getInstance(new Locale("es"));
String sNum = nf.format(num); //puede ser un long, double...

так кроме того ты можешь контролировать использование запятых или таких точек как разделитель десятичных или тысячи.

4
ответ дан 21.12.2019, 12:13

Самый простой способ, чтобы показывать число такой как он, без какой-либо нотации, состоит в том, чтобы использовать метод toString:

import java.math.BigDecimal;

public class Prueba {
    public static void main (String[] args) {
        BigDecimal num = new BigDecimal("10000000000");
        System.out.println(num.toString()); // 10000000000
    }
}

Вывод программы:

aoz001es :JAVA $ java Prueba 
10000000000
0
ответ дан 21.12.2019, 12:13