📜  如何在Java中设置双精度值?

📅  最后修改于: 2022-05-13 01:55:02.063000             🧑  作者: Mango

如何在Java中设置双精度值?

有效数字是指所有数字,包括左右到小数位保持注释在任何数字的左侧添加 0 都不能算作有效数字,而精确数字是指仅位于右侧或简而言之之后的数字数学中的小数位。在Java中,有超过 16 个数字的数字只是精度,但可以更多。这里我们给出了一个 double 值,任务是将其精度值设置为特定的小数位。如下图所示:

插图:

Input  : val = 1 
Output : 1.0000
Upto 4 decimal places
Input  : 12.5
Output : 12.500000
Upto 6 decimal places

设置双精度值的不同方法

  1. 使用 String 类的 format() 方法
  2. 使用 Math 类的 round() 方法

方法一:使用String类的format()方法

我们可以使用 String 类的 format() 方法将十进制数格式化为某种特定格式。

句法:

String.format("%.Df", decimalValue);
// Where D is the number required number of Decimal places

例子:

Java
// Java Program to Illustrate format() Method
// of String class
 
// Importing required classes
import java.io.*;
import java.lang.*;
 
// Class
class GFG {
   
  // Main driver method
  public static void main(String[] args) {
 
     // Declaring and initializing
     // double value
    double a = 0.9;
 
    // Setting the precision
    // to 20 places
    System.out.println(
      String.format("%.20f", a));
 
    double b = 1;
 
    // Setting the precision
    // to 5 places
    System.out.println(
      String.format("%.5f", b));
  }
}


Java
// Java Program to Illustrate Precision Setting In Double
// Using round() Method of Math Class
 
// Importing required classes
import java.util.*;
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing double variable
        double num = 3.141414141414;
 
        // Rounding off above double number
        // to 7 precision
        double ans
            = Math.round(num * 10000000) / 10000000.0;
 
        // Printing the above precised value
        // of double value
        System.out.println(ans);
    }
}


输出
0.90000000000000000000
1.00000

从上面的输出中可以清楚地看出,第一个条目的精度为 20 位,而输入的 double 值则精度为 5 位。

方法二:使用数学类的round()方法

例子:

Java

// Java Program to Illustrate Precision Setting In Double
// Using round() Method of Math Class
 
// Importing required classes
import java.util.*;
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing double variable
        double num = 3.141414141414;
 
        // Rounding off above double number
        // to 7 precision
        double ans
            = Math.round(num * 10000000) / 10000000.0;
 
        // Printing the above precised value
        // of double value
        System.out.println(ans);
    }
}
输出
3.1414141

上面的双数精确到 7 位,从生成的输出中可以很容易地看出。