博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7.数字处理类
阅读量:5128 次
发布时间:2019-06-13

本文共 5202 字,大约阅读时间需要 17 分钟。

1. 
数字格式化
JAVA
主要是对浮点数进行格式化
DecimalFormat
类用于格式化十进制数字。它可以将一些数字格式化为整数,浮点数,百分数等。通过使用该类可以为要输出的数字加上但单位或控制数字的精度。一般情况下可以在实例化对象时传递数字格式。也可以通过类中的方法
applyPattern()
方法来实现数字格式化。
public 
class demo {
static 
public 
void simgleFormat(String
pattern,
double 
value) {
DecimalFormat  
myFormat=
new DecimalFormat(
pattern);
String
output=
myFormat.format(
value);
System.
out.println(
value+
" 按规则:"+
pattern+
"格式化为:"+
" "+
output);
}
Static public void UseApplyPatternMethodFormat(String pattern,double value){
DecimalFormat  
myFormat=
new DecimalFormat();
myFormat.applyPattern(pattern);
System.
out.println(
value+
" 按规则:"+
pattern+
"格式化为:"+
" "+
output);
}
 
 
public 
static 
void main(String[]
args) {
simgleFormat(
"%",0.23);
//转换成百分数
//#
代表阿拉伯数字,如果存在数字则显示,若无则不显示
//0
代表阿拉伯数字,如果存在数字则显示,若无显示
0
//%
百分数
//\u2030
千分数,前缀和后缀决定符号的位置
//\u00A4
货币符号
simgleFormat(
"00000000.########kg",123456789.23);
//加上单位
simgleFormat(
"#####.kg",0.23);
simgleFormat(
"####.###",0.237887);
//三位小数,小数位数的控制
simgleFormat(
"0.00\u2030",0.23);
simgleFormat(
"0.0\u00A4",0.23);
}
}
2.
其他设置
SETGROUPINGSIZE()
设置分组大小
SETGROUPINGUSED()
设置是否允许将数字进行分组
DecimalFormat  
myFormat=
new DecimalFormat();
myFormat.setGroupingSize(2);
String
output=
myFormat.format(12345678.9);
System.
out.println(
output);
myFormat.setGroupingUsed(
false);
String
output1=
myFormat.format(12345678.9);
System.
out.println(
output1);
2. 
数学运算
Math
类中提供众多数学函数方法,主要包括三角函数,指数函数方法,取整函数方法,取最大值,最小值以及平均值函数方法,都是
static
方法
Math.
数学方法
数学常量
Math.pi
Math.E
3. 
随机数
方法一:
Math
类的
random
()方法
这个方法默认生成大于等于
0.0
且小于
1.0
double
型随机数  
0<=Math.Random()<1.0
(int)(Math.random()*n)  
随机生成大于等于
0
小于
n
的数
(int)(Math.random()*n)+(int) num1
随机生成大于等于
num1
小于
n+num1
的数
(int)(Math.random()*(num2-num1))+(int) num1
生成大于等于
num1
小于
num2-num1+num1=num2
的数
[num1,num2)
1. 
num1
num2
的随机数
[num1,num2)
公式:
int s=(int)num1+(int)(Math.random()*(num2-num1));
2. 
生成
A
Z
的随机字符
Char
c=(char)(
a
+Math.Random()*(
z
-
a
+1));//
得任意字符:
[0+97,97+25+1)
[a,123)
Char c=(char)(cha1+Math.random()*(cha2-cha1+1));(ch1
cha2)
Ascll
码:
1. A   65
2. a
   97
3. Z   90
4. z
   122
方法二:
Random
类提供的产生各种数据类型随机数
1.
实例化对象,
Random r=new Random();
2.
设置种子,
Random r=new Random(seedValue);
3.
调用方法
   1.
获取随机整数
nextInt()
   2.
获取有范围的整数
nextInt(10) [0,10)
   3.
获取随机长整数
nextLong()
   4.
获取随机布尔值
nextBoolean()
   5.
获取随机浮点数
nextFloat()
   6.
获取随机双精度浮点数  
nextDouble()
   7.
获取概率密度为高斯分布的双精度值
nextGaussian()
3.
大数字运算
1.BigInteger
//
加法
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"75892358235923759023");
System.
out.println(
bigInstance
.
add(
new BigInteger(
"2")));
}
//
减法
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"75892358235923759023");
System.
out.println(
bigInstance.
subtract(
new BigInteger(
"2")));
}
//乘法
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"222222222222222222");
System.
out.println(
bigInstance.multiply(
new BigInteger(
"2")));
}
//
除法
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"222222222222222222");
System.
out.println(
bigInstance. divide(
new BigInteger(
"2")));
}
//
取商
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"4");
System.
out.println(
bigInstance.divideAndRemainder(
new BigInteger(
"3"))[0]);
}
//
取余数
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"5");
System.
out.println(
bigInstance.divideAndRemainder(
new BigInteger(
"3"))
[1])
//n
次方
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"5");
System.
out.println(
bigInstance.pow(3));
}
//
相反数
public 
static 
void main(String[]
args) {
BigInteger
bigInstance=
new BigInteger(
"5");
System.
out.println(
bigInstance.negate());
}
 
2.BigDecimal
常用在精密的商业计算,加入了小数概念
//
加法
public 
static 
void main(String[]
args) {
demo
test=
new demo();
BigDecimal
b3=
test.add(7.65,6.76);
System.
out.println(
b3);
}
public  BigDecimal add(
double 
value1,
double 
value2) {
BigDecimal
b1=
new BigDecimal(Double.
toString(
value1));
BigDecimal
b2=
new BigDecimal(Double.
toString(
value2));
 
return 
b1 .add(
b2 );}
//
减法
public 
static 
void main(String[]
args) {
demo
test=
new demo();
BigDecimal
b3=
test.add(7.65,6.76);
System.
out.println(
b3);
}
public BigDecimal add(
double 
value1,
double 
value2) {
BigDecimal
b1=
new BigDecimal(Double.
toString(
value1));
//减数
BigDecimal
b2=
new BigDecimal(Double.
toString(
value2));
//被减数
 
return 
b1.subtract(
b2);}
//
乘法
public 
static 
void main(String[]
args) {
demo
test=
new demo();
BigDecimal
b3=
test.add(7.65,6.76);
System.
out.println(
b3);
}
public BigDecimal add(
double 
value1,
double 
value2) {
BigDecimal
b1=
new BigDecimal(Double.
toString(
value1));
//乘数
BigDecimal
b2=
new BigDecimal(Double.
toString(
value2));
//被乘数
 
return 
b1.multiply(
b2);
}
//
除法
public 
static 
void main(String[]
args) {
demo
test=
new demo();
BigDecimal
b3=
test.div(7.65,6.76,3);
System.
out.println(
b3);
}
public BigDecimal div(
double 
value1,
double 
value2,
int 
b) {
//b是保留的小数位数
BigDecimal
b1=
new BigDecimal(Double.
toString(
value1));
//除数
BigDecimal
b2=
new BigDecimal(Double.
toString(
value2));
//被除数
return 
b1.divide(
b2,
b,BigDecimal.
ROUND_HALF_UP);
 
}

 

转载于:https://www.cnblogs.com/cainame/p/10091969.html

你可能感兴趣的文章
SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
查看>>
DrawerLayout实现双向侧滑
查看>>
CentOS下同步时间并写入CMOS
查看>>
Java基础-一个java文件多个类的问题
查看>>
Maven安装jar包到本地仓库
查看>>
前端学习总览
查看>>
HDU1228 A + B
查看>>
第一阶段冲刺个人博客10
查看>>
[分块] 洛谷 P3396 哈希冲突
查看>>
《程序设计实践》中文版pdf
查看>>
NLog简单使用
查看>>
MySQL入门很简单-触发器
查看>>
LVM快照(snapshot)备份
查看>>
Struts2 - 与 Servlet 耦合的访问方式访问web资源
查看>>
绝望的第四周作业
查看>>
一月流水账
查看>>
数论四大定理
查看>>
npm 常用指令
查看>>
C#基础知识面试经典[整理]
查看>>
微信 oauth2 两次回调
查看>>