Java中的BigDecimal byteValueExact()方法

这个 JAVA数学大十进制。字节值精确() 是一个内置函数,可将BigDecimal转换为字节并检查丢失的信息。任何大的十进制值 大于127或小于-128 ,将生成异常,因为它不符合字节范围。

null

语法:

public byte byteValueExact()

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

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

例外情况: 这个函数抛出 算术异常 如果BigDecimal具有非零的小数部分,例如,如果是十进制值,或者超出字节结果的可能范围。

例如:

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()

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享