📜  Java中的 BigDecimal valueOf() 方法

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

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);
    }
}

输出: