Java 数字处理类

最近写的东西用到了一些数字处理方面的问题,所以一块总结一下
1、java的数字格式化
比如保留几位数字的问题:Java主要对浮点型数据进行数字格式化操作,其中浮点型数据包括double型和float型,在java中使用java.text.DecimalFormat格式化数字。
首先 :在java中没有格式化的数据遵循以下原则:
      如果数据绝对值大于0.01并且小于10000000,java将以常规小数形式表示
      如果数据绝对值小于0.01或者大于10000000,使用科学计数法表示
由于上述输出格式不能满足解决实际问题的要求,通常将结果格式化为指定形式后输出。
DecimalFormat是NumberFormat的一个字累,用于格式化十进制数字。他可以将一些数字格式化为整数、浮点数、科学计数法、百分数等。通过使用该类可以为要输出的数字加上单位或者控制数字的精度、一般情况下可以在实例化DecimalFormat对象是传递数字格式,也可以通过DecimalFormat类中的applyPatern()方法来实现数字格式化。
     当格式化数字时,在DecimalFormat类中使用一些特殊字符构成一个格式化末班,是数字按照一定的特殊字符规则进行匹配。
                    decimalFormat类中特殊字符说明
符号 位置 本地化? 含义
0 数字 阿拉伯数字
# 数字字 阿拉伯数字,如果不存在则显示为空
. 数字 小数分隔符或货币小数分隔符
- 数字 减号
, 数字 分组分隔符
E 数字 分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。
; 子模式边界 分隔正数和负数子模式
% 前缀或后缀 乘以 100 并显示为百分数
/u2030 前缀或后缀 乘以 1000 并显示为千分数
¤(/u00A4) 前缀或后缀 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
' 前缀或后缀 用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"
2、数学运算
在java中提供了一个执行数学基本运算的Math类,该类包括一些常用的数学运算方法,如三角函数。指数、对数、平方根等一些常用的数字甘薯,除此之外还提供了一些常用的数学常量如PI、E等。可以输入Math按照提示进行选择使用哪一种数学函数
3、随机数
Math.random() : 在Math类中存在一个random()方法,用于产生随机数字,这个方法默认生成大于等于0.0晓宇1.0的double型随机数,即0<=Math.random<=1.0。虽然random()方法只可以产生0-1之间的double型数字,其实只要在Math.random()语句上稍加处理,就可以使用这个方法产生任意范围的随机数。
除了上面的方法外。java还提供了一种可以获取随机数的方式,那就是java.util.Random类可以通过实例化一个Random对象穿件一个随机数生成器:Random r = new Random();以这种方式实例化对象时,Java编译器一系统当亲时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数会不同,但是如果运行速度太快,也会产生两次运行结果相同的随机数。
    同时额可以在实例化Random类对象时,设置随机数生成器的种子 Random r = new Random(seedValue)
   在Random类中提供了获取各种数据类型随机数的方法例如 nextInt();   nextInt(int n);............
4、大数运算
在Java中提供了大数字的操作类,即java.math.BigInteger类与java.math.BigDecimal类。这两个类用于高精度计算,其中BigInteger类针对打证书处理类,二BigDecimal类则针对大小数的处理类。
  BigInteger类型的数字范围较Integer类型的数字范围要大的多,Integer是挺疼的包装类,int的最大值是2(32)-1,如果要计算更大的数字,就不可以了。BigInteger支持任意精度的整数,也就是说在运算中BigInteger类型可以准确地表示任何大小的整数值而不丢失任何信息。在它之中封装了多种操作,除了基本的加减乘除之外,还提供了取余、绝对值、相反数。最大公约数以及判断是否为质数的操作。bigDecimal和BigInteger都能实现大数字运算,只不过前者加入了小数的概念。而且其中的rBigDecmal类中的divide()方法有多种设置,用于返回商末尾小数点的处理。

你可能感兴趣的:(java)