Java BigDecimal abs()方法
- 使用java.math.BigDecimal.abs()来返回一个BigDecimal,其值是BigDecimal的绝对值,其比例是this.scale()。
语法 :
public BigDecimal abs()
参数:该方法不接受任何参数。
返回值:返回一个BigDecimal,其值为这个BigDecimal的绝对值,即this.scale()。
下面的程序将说明java.math.BigDecimal.abs()方法的使用。
程序 1
// Java program to demonstrate abs() method
import java.io.*;
import java.math.*;
public class GFG {
public static void main(String[] args)
{
// Creating a BigDecimal object
BigDecimal num;
// Assigning value to num
num = new BigDecimal("-51");
// Displaying the result
System.out.println("Absolute value is " + num.abs());
}
}
输出:
Absolute value is 51
程序 2
// Java program to demonstrate abs() method
import java.io.*;
import java.math.*;
public class GFG {
public static void main(String[] args)
{
// creating a BigDecimal object
BigDecimal num;
// assign value to num
num = new BigDecimal("-63.93471");
System.out.println("Absolute value is " + num.abs());
}
}
输出:
Absolute value is 63.93471
- java.math.BigDecimal.abs(MathContext mc)返回一个BigDecimal,其值是根据MathContext类的对象mc指定的精度设置,通过四舍五入得到的BigDecimal的绝对值。
语法:
public BigDecimal abs(MathContext mc)
参数 : 该函数只接受一个MathContext类对象的参数mc,该参数指定了用于对BigDecimal进行舍入的精度设置。
返回值: 返回一个BigDecimal,其值是按照对象mc所指定的精度设置进行四舍五入后得到的BigDecimal的绝对值。
异常:该方法抛出一个ArithmeticException,如果结果是不精确的,但是舍入模式是UNNECESSARY。
下面的程序说明了java.math.BigDecimal.abs()方法在指定MathContext下的使用。
程序 1
import java.io.*;
import java.math.*;
public class GFG {
public static void main(String[] args)
{
// Create 2 BigDecimal objects
BigDecimal num, absv;
MathContext mc = new MathContext(2);
// Assign value to num
num = new BigDecimal("51.93471");
// Assign absolute value of num to absv rounded
// to 2 precision using mc
absv = num.abs(mc);
System.out.println("Absolute value, rounded to 2 precision is "
+ absv);
}
}
输出:
Absolute value, rounded to 2 precision is 52
程序 2
import java.io.*;
import java.math.*;
public class GFG {
public static void main(String[] args)
{
// Create 2 BigDecimal objects
BigDecimal num, absv;
MathContext mc = new MathContext(15);
// Assign value to num
num = new BigDecimal("143567812363.93471");
// Assign absolute value of num to absv rounded
// to 15 precision using mc
absv = num.abs(mc);
System.out.println("Absolute value, rounded to 15 precision is "
+ absv);
}
}
输出:
Absolute value, rounded to 15 precision is 143567812363.935
**参考资料: **https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#abs()