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


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

java.math.BigDecimal.byteValueExact()是一个内置函数,它将BigDecimal转换为字节并检查丢失的信息。任何大于127或小于-128的BigDecimal值都将生成异常,因为它不适合字节范围。

用法:

public byte byteValueExact()

参数:该方法不接受任何参数。


返回值:此方法返回BigDecimal对象的字节值。

异常:如果BigDecimal具有非零小数部分(即十进制值)或超出字节结果的可能范围,则此函数引发ArithmeticException。

例子:

Input : 127
Output : 127

Input : -67
Output : -67

下面的程序将说明byteValueExact()函数的用法:
示例1:

// Java program to demonstrate byteValueExact() method 
import java.io.*; 
import java.math.*; 
  
public class GFG { 
  
    public static void main(String[] args) 
    { 
  
        // Creating a BigDecimal object 
        BigDecimal b; 
  
        // Creating a byte objects 
        byte bt; 
  
        b = new BigDecimal("47"); 
  
        // Assigning the byte value of b to bt 
        bt = b.byteValueExact(); 
  
        // Displaying the byte value 
        System.out.println("Exact byte value of " + b + " is " + bt); 
    } 
}
输出:
Exact byte value of 47 is 47

示例2:

// Java program to demonstrate byteValueExact() method 
import java.io.*; 
import java.math.*; 
  
public class GFG { 
  
    public static void main(String[] args) 
    { 
  
        // Creating a BigDecimal object 
        BigDecimal b; 
  
        b = new BigDecimal("-128.0564000"); 
        System.out.println("BigDecimal value : " + b); 
  
        long roundedValue = Math.round(b.doubleValue()); 
        System.out.println("Rounded value : " + roundedValue); 
  
        // Rounding is necessary as the fractional part is not zero 
        // as well as exceeding the byte range of -128 to 127 
        b = new BigDecimal(roundedValue); 
        System.out.println("Byte converted value : " + b.byteValueExact()); 
    } 
}
输出:
BigDecimal value : -128.0564000
Rounded value : -128
Byte converted value : -128

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



相关用法

注:本文由纯净天空筛选整理自RICHIK BHATTACHARJEE大神的英文原创作品 BigDecimal byteValueExact() Method in Java。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。