Java: указание числа после десятичной точки - PullRequest
4 голосов
/ 26 декабря 2011

У меня есть графический код Java для расчета диапазона данных, например, если введено два значения 2.444 и 3.555, результатом будет длинный двойной 1.11100000... и т. Д. Как указать, сколько цифр после десятичной дробиуказать это должно отображать?(например: %.2f)

Это мой код:

public class Range
{
    public static void main(String args[])
    {
        int num=0; //number of data
        double d; //the data
        double smallest = Integer.MAX_VALUE;
        double largest = Integer.MIN_VALUE;
        double range = 0;

        String Num =
        JOptionPane.showInputDialog("Enter the number of data ");
        num=Integer.parseInt(Num);

        for(int i=0; i<num; i++)    
        {
            String D =
            JOptionPane.showInputDialog("Enter the data ");
            d=Double.parseDouble(D);

            if(d < smallest)
                smallest = d;
            if(d > largest)
                largest = d; 
        }

        range = largest - smallest ; //calculating the range of the input

        JOptionPane.showMessageDialog(null,"Range = "+smallest+"-"+largest+" = "+range,"Range",JOptionPane.PLAIN_MESSAGE);
    }
}

Ответы [ 4 ]

8 голосов
/ 26 декабря 2011

Вы можете использовать String.format , чтобы определить, какой вывод вам нравится, например,

String.format("Range = %.4f", range)

, чтобы показать 4 десятичных знака.

3 голосов
/ 26 декабря 2011

DecimalFormat .Ниже пример формы здесь

import java.text.DecimalFormat;
import java.text.NumberFormat;

public class DecimalFormatExample
{
    public static void main(String[] args)
    {
        // We have some millons money here that we'll format its look.
        double money = 100550000.75;

        // By default to toString() method of the Double data type will print
        // the money value using a scientific number format as it is greater
        // than 10^7 (10,000,000.00). To be able to display the number without
        // scientific number format we can use java.text.DecimalFormat wich
        // is a sub class of java.text.NumberFormat.

        // Below we create a formatter with a pattern of #0.00. The # symbol
        // means any number but leading zero will not be displayed. The 0 
        // symbol will display the remaining digit and will display as zero
        // if no digit is available.
        NumberFormat formatter = new DecimalFormat("#0.00");

        // Print the number using scientific number format.
        System.out.println(money);

        // Print the number using our defined decimal format pattern as above.
        System.out.println(formatter.format(money));
    }
}
1 голос
/ 26 апреля 2019

Используйте это:

double x = new Random.nextDouble(); //ex: x = 0.126521478419346598
x = Math.round(x*1000)/1000.0;  //x will be: 0.126
0 голосов
/ 25 июля 2013

добавьте этот экземпляр DecimalFormat в начало вашего метода:

DecimalFormat three = new DecimalFormat("0.000");

// or this. this will modify the number to have commas every new thousandths place.
DecimalFormat three = new DecimalFormat("#,##0.000");

// the three zeros after the decimal point above specify how many decimal places to be accurate to.
// the zero to the left of the decimal place above makes it so that numbers that start with "0." will display "0." vs just "." If you don't want the "0.", replace that 0 to the left of the decimal point with "#"

, затем вызовите этот экземпляр и передайте ему строку при отображении:

String str = 4.651681351;
display.setText(three.format(str)); // displays 4.652
...