Java中的 BigDecimal valueOf() 方法
Java.math.BigDecimal.valueOf(long val)是Java中的一种内置方法,可将 long 值转换为比例为零的 BigDecimal 值。它允许我们重用经常使用的 BigDecimal 值,因此这种“静态工厂方法”优先于(长)构造函数提供。包视图如下:
--> java.math Package
--> BigDecimal Class
--> valueOf() Method
BigDecimal 类的 valueOf() 方法有 3 种类型的变体,如下面的语法所示,通过不同的参数如下所示:
- 公共静态 BigDecimal valueOf(long val)
- 公共静态 BigDecimal valueOf(double d)
- 公共静态 BigDecimal 值(long l,int x)
类型 1: Java.math.BigDecimal.valueOf(long val)
参数:该方法接受 Long 数据类型的单个参数val ,并引用需要转换为 BigDecimal 值的值。
返回值:该方法返回 Long val的 BigDecimal 值。
例子:
Java
// Java Program to Illustrate valueOf() Method
// of BigDecimal Class
// Over long As Arguments
// Importing required classes
import java.math.*;
// Class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating and declaring long value by
// creating object of Long class
Long ln = new Long("745812345678");
// Assigning above long value to BigDecimal
BigDecimal b = BigDecimal.valueOf(ln);
// Printing the BigDecimal value on console
System.out.println(
"The Converted BigDecimal value is: " + b);
}
}
Java
// Java Program to Illustrate valueOf() Method
// of BigDecimal Class
// Over Double type As Arguments
// Importing required classes
import java.math.*;
// Class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating a Double Object
Double d = new Double("785.254");
/// Assigning the bigdecimal value of d to b
BigDecimal b = BigDecimal.valueOf(d);
// Printing BigDecimal value on console
System.out.println(
"The Converted BigDecimal value is: " + b);
}
}
Java
// Java Program to Illustrate valueOf() Method
// of BigDecimal Class
// Over (long, int) As Arguments
// Importing required classes
import java.math.*;
// Class
public class GFG {
// Main driver method
public static void main(String[] args) {
// Creating a Long Object by
// creating object of Long class type
Long ln = new Long("789654");
// Assigning the bigdecimal value to
// BigDecimal with scale 3
BigDecimal b = BigDecimal.valueOf(ln, 3);
// Printing BigDecimal value on console
System.out.println("The BigDecimal value is " + b);
}
}
输出:
类型 2: Java.math.BigDecimal.valueOf(double val)
Java.math.BigDecimal.valueOf(double val)是Java中的一个内置方法,它使用 Double.toString(double) 方法提供的 double 的规范字符串表示形式将 double 转换为 BigDecimal。
句法:
public static BigDecimal valueOf(double val)
参数:该方法接受 Double 数据类型的单个参数val ,并引用需要转换为 BigDecimal 值的值。
返回值:该方法返回一个 BigDecimal 值,该值等于或大约等于 Double val 。
例子:
Java
// Java Program to Illustrate valueOf() Method
// of BigDecimal Class
// Over Double type As Arguments
// Importing required classes
import java.math.*;
// Class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating a Double Object
Double d = new Double("785.254");
/// Assigning the bigdecimal value of d to b
BigDecimal b = BigDecimal.valueOf(d);
// Printing BigDecimal value on console
System.out.println(
"The Converted BigDecimal value is: " + b);
}
}
输出:
类型 3: Java.math.BigDecimal.valueOf(long unscaledVal, int scale)
Java.math.BigDecimal.valueOf(long unscaledVal, int scale)是Java中的一种内置方法,用于将 long unscaled value 和 int scale 转换为 BigDecimal。这种“静态工厂方法”优先于 (long, int) 构造函数提供,因为它允许重用经常使用的 BigDecimal 值。
句法:
public static BigDecimal valueOf(long unscaledVal, int scale)
参数:它需要两个参数:
- unscaledVal:这是 Long 数据类型,指的是 BigDecimal 的 Unscaled 值。
- scale:这是Integer数据类型,指的是BigDecimal的Scale。
返回值:一个大小数,其值为 unscaled*10 -scale 。
例子:
Java
// Java Program to Illustrate valueOf() Method
// of BigDecimal Class
// Over (long, int) As Arguments
// Importing required classes
import java.math.*;
// Class
public class GFG {
// Main driver method
public static void main(String[] args) {
// Creating a Long Object by
// creating object of Long class type
Long ln = new Long("789654");
// Assigning the bigdecimal value to
// BigDecimal with scale 3
BigDecimal b = BigDecimal.valueOf(ln, 3);
// Printing BigDecimal value on console
System.out.println("The BigDecimal value is " + b);
}
}
输出: