如何在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
设置双精度值的不同方法
- 使用 String 类的 format() 方法
- 使用 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 位,从生成的输出中可以很容易地看出。