当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java BigDecimal longValueExact()用法及代码示例


java.math.BigDecimal.longValueExact()是一个内置函数,该函数将该BigDecimal转换为long值并检查丢失的信息。如果此BigDecimal的任何小数部分或转换的结果太大而无法表示为一个long值,则此函数将引发算术异常。

用法:

public long longValueExact()

参数:该函数不接受任何参数。


返回值:此函数返回此BigDecimal的long值。

异常:如果此BigDecimal中有一个非零小数部分,或者其值太大而无法表示,则该函数将引发ArithmeticException。

例子:

Input : "1987812456121"
Output : 1987812456121

Input : "721111"
Output : 721111

以下程序说明了java.math.BigDecimal.longValueExact()方法的用法:
示例1:

// Java program to illustrate 
// longValueExact() method 
import java.math.*; 
import java.io.*; 
  
class GFG { 
    public static void main(String[] args) 
    { 
        // Creating 2 BigDecimal Objects 
        BigDecimal b1, b2; 
  
        // Assigning values to b1, b2 
        b1 = new BigDecimal("267694723232"); 
        b2 = new BigDecimal("721111845617"); 
  
        // Displaying their respective Long Values 
        System.out.println("Exact Long Value of " +  
        b1 + " is " + b1.longValueExact()); 
        System.out.println("Exact Long Value of " +  
        b2 + " is " + b2.longValueExact()); 
    } 
}
输出:
Exact Long Value of 267694723232 is 267694723232
Exact Long Value of 721111845617 is 721111845617

注意:与longValue()函数会丢弃此BigDecimal的任何小数部分并在转换结果太大而无法将其表示为long值时仅返回低阶64位不同,此函数在此类情况下会引发算术异常。

示例2:

// Java program to illustrate 
// Arithmetic Exception occurrence 
// in longValueExact() method 
import java.math.*; 
import java.io.*; 
  
class GFG { 
    public static void main(String[] args) 
    { 
        // Creating 2 BigDecimal Objects 
        BigDecimal b1, b2; 
        // Assigning values to b1, b2 
        b1 = new BigDecimal("267694723232435121868"); 
        b2 = new BigDecimal("72111184561789104423"); 
        // Displaying their respective Long Values 
        // using longValue() 
        System.out.println("Output by longValue() Function"); 
        System.out.println("The Long Value of " + b1 + " is " + b1.longValue()); 
        System.out.println("The Long Value of " + b2 + " is " + b2.longValue()); 
        // Exception handling 
        System.out.println("\nOutput by longValueExact() Function"); 
        try { 
            System.out.println("Exact Long Value of " +  
            b1 + " is " + b1.longValueExact()); 
            System.out.println("Exact Long Value of " +  
            b2 + " is " + b2.longValueExact()); 
        } 
        catch (ArithmeticException e) { 
            System.out.println("Arithmetic Exception caught"); 
        } 
    } 
}
输出:
Output by longValue() Function
The Long Value of 267694723232435121868 is -9006437873208152372
The Long Value of 72111184561789104423 is -1675791733049102041

Output by longValueExact() Function
Arithmetic Exception caught

参考:https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#longValueExact()



相关用法


注:本文由纯净天空筛选整理自RICHIK BHATTACHARJEE大神的英文原创作品 BigDecimal longValueExact() Method in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。