一、Math类
Math类提供了大量的静态方法来便于我们实现数学计算,如求绝对值、取最大或最小值等。
https://doc.qzxdp.cn/jdk/17/zh/api/java.base/java/lang/Math.html
- 所在模块:java.base
- 所在包: java.lang
static double abs(double a)
返回a值的绝对值
其它重构方法支持不同数据类型:int|long|float|double;
static double max(double a, double b)
返回较大者;
static double min(double a, double b)
返回较小者;
static double pow(double a, double b)
返回a的b次方;
static double sqrt(double a)
返回a平方根;
static double log(double a)
返回a的对数;
static double sin(double a)
返回正弦值;
static double asin(double a)
返回反正弦值;
static long round(double a)
4舍5入,【注意返回类型】;
static int round(float a)
4舍5入,【注意返回类型】;
static double ceil(double a)
返回大于a,且最接近a的最小整数;
static double random()
[0.0,1)
大于或等于 0.0 且小于 1.0的随机数;
二、BigInteger类
BigInteger用于处理大整数(任意长度的整数) ,位于java.math
。
构造方法
public BigInteger(String val)
将十进制字符串表示形式转换为 BigInteger。
BigInteger a = new BigInteger("123456789123456789123456789");
常用方法
BigInteger add(BigInteger val)
返回值为 (this + val) ;
BigInteger subtract(BigInteger val)
返回值为 (this - val) ;
BigInteger multiply(BigInteger val)
返回值为 (this * val) ;
BigInteger divide(BigInteger val)
返回值为 (this / val) ;
BigInteger remainder(BigInteger val)
返回值为 (this % val) ;
BigInteger compareTo(BigInteger val)
this大于value -> 1
this等于value -> 0
this小于value -> -1;
String toString()
返回此 BigInteger 的十进制字符串表示形式;
String toString(int radix)
返回给定基数中此 BigInteger 的字符串表示形式;
例如:
BigInteger a = new BigInteger("123456789123456789123456789");
BigInteger b = new BigInteger("123456789123456789123456789");
BigInteger c = a.add(b);
System.out.println(a.bitCount());
System.out.println(c);
三、DecimalFormat类
DecimalFormat
位于 java.text.DecimalFormat
是 NumberFormat
(抽象类)的具体子类,用于格式化十进制数。
0:表示一位数字
整数:最少是几位整数,不足时补0
小数:最多是几位小数(4舍5入),不足时补0
#:表示一位数字
整数:最少是几位整数,不补0
小数:最多是几位小数(4舍5入),不补0
,:在数字中用作分组分隔符
.:用于表示小数点的位置。
;:子模式边界,分隔正数和负数子规则
%:将数字格式化为百分比形式。
例1
0 和 # 的 区别
DecimalFormat decimalFormat = new DecimalFormat("00000");
String rst = decimalFormat.format(123);
System.out.println(rst); // 00123
DecimalFormat decimalFormat = new DecimalFormat("#####");
String rst = decimalFormat.format(123);
System.out.println(rst); // 123
分组分隔符
DecimalFormat decimalFormat = new DecimalFormat(",#####");
String rst = decimalFormat.format(123456);
System.out.println(rst); //
小数点
DecimalFormat decimalFormat = new DecimalFormat(".00"); // 【固定】两位小数
DecimalFormat decimalFormat = new DecimalFormat(".##"); // 【最多】两位小数
String rst = decimalFormat.format(3.145926);
System.out.println(rst); //
百分比形式
DecimalFormat decimalFormat = new DecimalFormat("+.00%");
System.out.println(decimalFormat.format(0.6812)); //
子模式边界(使用;
分隔正负)
DecimalFormat decimalFormat = new DecimalFormat("+.00%;-.00%");
System.out.println(decimalFormat.format(0.6812));
System.out.println(decimalFormat.format(-0.6834));
将字符串转化为数字
DecimalFormat decimalFormat = new DecimalFormat("¥#.00");
double price = decimalFormat.parse("¥123.45").doubleValue();
System.out.println(price);
标签:BigInteger,val,17,double,decimalFormat,API,static,javase,DecimalFormat
From: https://blog.csdn.net/weixin_42238065/article/details/144597158