数字格式化:
Java主要对浮点型数据进行数字格式化操作,其中浮点型包括float(单精度)型和double(双精度)型,在 Java中使用
Java.text.DecimalFormat格式化数字;
在Java中没有格式化的数字遵循以下原则;
1.如果数据绝对值大于0.001并且小于10000000,Java将以常规小数形式表示
2.如果数据绝对值小于0.001或者大于10000000,Java将以科学记数法表示
而由于上述的输出格式不能满足解决实际问题的要求,通常将结果格式化为制定形式后输出。在Java中我们使用DecimalFormat类进行格式化操作;
DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字,他可以将一些数字格式化为整数、浮点数、百分数等。通过该类可以可以给要输出的数据加上单位或者控制输出数据的精度。一般情况我们在实例化DecimalFormat对象时传递数字格式,也可以通过DecimalFormat类中的applyPattern()方法来实现数字格式化。
在格式化数字时,在DecimalFormat类中使用一些特殊字符构成了一个格式化模板,使数字按一定的特殊字符规则进行匹配。
下面是格式化模板中的特殊字符及其含义:
DecimalFormat类中的特殊字符说明
字符 | 说明 |
0 | 代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果不存在该数字,则显示0 |
# | 代表阿拉伯数字,使用特殊字符“#”表示数字的一位阿拉伯数字,如果存在该数字,则显示字符,反之则不显示 |
. | 小数分隔符或者货币小数分隔符 |
- | 负号 |
, | 分组分隔符 |
E | 分隔科学记数法中的尾数和指数 |
% | 放置在数字的前缀或者后缀,将数字乘以100显示为百分数 |
\u2030 | 放置在数字的前缀或者后缀,将数字乘以1000显示为千分数 |
\u00A4 | 放置在数字的前缀或者后缀,作为货币记号 |
' | 单引号,当上述特殊符号出现时,应为其添加此符号,系统会将此符号视为普通符号处理 |
在 DecimalFormat类中除了 用设置格式化模式来格式化数字以外,还可以用一些特殊方法对数字进行格式化。
例:
DecimalFormat myFormat=new DecimalFormat();//实例化DecimalFormat类对象
myFormat.setGroupingSize(2);//设置将数字分组的大小 假设一串数字为123456790,则分组后输出为12.34.56.78.90
myFormat.setGroupingUsed(false);//设置是否支持分组 不允许分组 将以原来数字输出
数学运算:
Java语言中提供了一个执行数学的基本运算类Math类,该类包括常用的数学运算,如:函数方法,指函数方法,对函数方法,平方根函数方法等一些常用的数学函数,还有一些常量如:PI和E等。
Math类:
此类中的方法都被定义为static形式,调用方法Math.数学方法/常量
随机数:
Math.Random()方法用于产生随机数数字,该方法默认生成大于等于0.0且小于1.0的double型随机数。
m+(int)(Math.Random()*n)----->即大于等于m且小于m+n的随机数
( int)(Math.Random()*n)------>大于等于0.0且小于n的随机数
Random类:
除了Math中的random()方法可以获取随机数以外,Java中还提供了用Java.util.Random类获取随机数。
默认为系统当前时间为生成器种子
Random r=new Random(生成器种子/默认为系统当前时间);
r.next数据类型(n);
大数字运算:
BigInteger和BigDecimal,int的最大值为2的31次方-1,如果还要计算更大的数字就需要运用到BigInteger和BigDecimal。
他们的区别在于BigDecimal加入了小数的概念。