Java数字格式化、Math类、随机数笔记

数字格式化

DecimalFormatNumberFormat的一个子类,用于格式化十进制数字。将一些数字格式化为整数、浮点数、科学计数法,百分数等。可以为要输出的数字加上单位或控制数字的精度。
可以在DecimalFormat对象时传递数字格式:

/**
 * 使用实例化对象时设置格式化模式
 * @param pattern
 * @param value
 */
static public void SingleFormat(String pattern, double value){
    //实例化DecimalFormat对象
    DecimalFormat myFormat = new DecimalFormat(pattern);
    String outputString = myFormat.format(value);
    System.out.println(value+"|"+pattern+"|"+outputString);
}

也可以通过DecimalFormat 的applyPattern()方法来实现数字格式化:

/**
 * 使用applyPattern()方法对数字进行格式化
 * @param pattern
 * @param value
 */
static public void UseApplyPatternMethodFormat(String pattern, double value){
    DecimalFormat myFormat = new DecimalFormat();
    myFormat.applyPattern(pattern);
    System.out.println(value+"|"+pattern+"|"+myFormat.format(value));
}

使用例子如下:

    SingleFormat("###,###.###", 123456.789);//逗号分隔数字
    SingleFormat("00000000.###kg", 123456.789);//在数字后加上单位
    SingleFormat("000000.00", 123.45);//不存在的以显示

    UseApplyPatternMethodFormat("#.###%", 0.456);//将数字转换为百分数形式
    UseApplyPatternMethodFormat("###.##", 123456.789);//将小数点后格式为两位
    UseApplyPatternMethodFormat("0.00\u2030", 0.456);//将数字格式化为千分数形式

控制台输出结果如下:

123456.789|###,###.###|123,456.789
123456.789|00000000.###kg|00123456.789kg
123.45|000000.00|000123.45
0.456|#.###%|45.6%
123456.789|###.##|123456.79
0.456|0.00‰|456.00‰

格式化模板中的特殊字符及其所代表的含义如下:

字 符字符含义
0“0”表示以为阿拉伯数字,如果该位不存在数字,则显示0
#“0”表示以为阿拉伯数字,如果该位存在数字,则显示字符,如果该位不存在数字,则不显示
-符号
,分组分隔符
E分隔科学计数法中的尾数和指数
%放置在数字的前缀or后缀,将数字乘以100显示为百分数
\u2030放置在数字的前缀or后缀,将数字乘以1000显示为千分数
\u00A4放置在数字的前缀or后缀,作为货币记号
单引号,当上述特殊字符出现在数字中时,应为特殊符号添加单引号,系统会将此符号视为普通符号处理

Math类

Math类提供了众多数学函数方法,还提供了一些数学常量:

Math.PI//圆周率
Math.E//E

角度和弧度的互换方法:

System.out.println(Math.toDegrees(Math.PI / 2));//取π/2的角度
System.out.println(Math.toRadians(90.0));//取90.0的弧度值取整函数

取整函数:

System.out.println("使用ceil()方法取整:"+Math.ceil(1.2));//ceil()返回大于or等于参数的最小整数
System.out.println("使用floor()方法取整:"+Math.floor(1.2));//floor()返回小于or等于参数的最大整数
System.out.println("使用rint()方法取整:"+Math.rint(1.2));//rint()返回与参数最接近的整数
System.out.println("使用rint()方法取整:"+Math.rint(1.8));
System.out.println("使用round()方法取整:"+Math.round(1.4));//round()将参数加上0.5后返回与参数最近的整数
System.out.println("使用round()方法取整:"+Math.round(1.5f));

控制台输出的结果如下:

使用ceil()方法取整:2.0
使用floor()方法取整:1.0
使用rint()方法取整:1.0
使用rint()方法取整:2.0
使用round()方法取整:1
使用round()方法取整:2

最大值函数 Math.max(),最小值函数Math.min(),绝对值函数Math.abs().

随机数

Math.random()方法

Math.random()方法默认生成大于等于0.0小于1.0的double型随机数,即0<=Math.random()<1.0。

    /**
     * 获取char1,char2之间的随机字符
     * @param char1
     * @param char2
     * @return
     */
    public static char GetRandomChar(char char1, char char2) {
        return(char)(char1+Math.random()*(char2 - char1 + 1));
    }

Random类

使用Random类时,Java编译器以系统当前时间作为随机数生成的种子。

    Random r = new Random();
    System.out.println("随机生成一个整数:"+r.nextInt());
    System.out.println("随机生成一个大于等于0小于5的整数:"+r.nextInt(5));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值