数字格式化

数字格式化在解决实际问题时使用非常普遍,如果表示某某超市的商品价格,需要保留两位有效小数字。Java只要对浮点型数据进行数字格式化操作,其浮点型数据包括double型和float型数据,在java中使用java.text.DecimalFormat数字,本实例将重点讲解DecimalFormat类。
  在java中没有格式化的数据遵循以下两种原斜体样式则:
  1. 如果数据绝对值大于0.001并且小于10000000,java将以常规小数形式表示
  2. 如果数据绝对值小于0.001或者小于10000000,java将以科学计数法表示
    由于上述输出格式不能满足解决实际问题的要求,通常将结果格式化为指定形式后输出。在java中可以使用DecimalFormat类进行格式化操作。
    DecimalFormat是NumberFormat的子类,用于格式化十进制数字。它可以将一些数字格式化为整形,浮点型,百分数等。通常使用该类可以为要输出的数字加上单位或者控制数字的精度。一般情况下可以在实例化DecimalFormat对象时传递数字格式,也可以通过DecimalFormat类中的applypPattern()方法来实现数字格式化。
    下面是DecimalFormat类中特殊字符说明:
    0 代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果该位不存在数字,则显示为0。
    “#” 代表阿拉伯数字,使用特殊字符“#”表示数字的一位阿拉伯数字,如果该位存在数字,则显示字符;如果该位不存在数字,则不显示。
    . 小数分割符或货币分隔符。
  • 符号。
    ,分组分隔符。
    E 分割科学计数法中尾数和指数。
    % 本符号放置在数字的前缀或后缀,将数字乘以100显示为百分数
    \u2030 本符号放置在数字的前缀或后缀,将数字乘以1000显示为千分数
    \u00A4 本符号放置在数字的前缀或后缀,作为货币记号
    ` 本符号为单引号,当上述特殊字符出现在数字时,应该特殊符号添加单引号,系统会将此符号视为普通符号处理
    1.下面以实例说名数字格式化,创建StringFormart类,在类中分别定义Format()和thenFormat()两种方法实现两种格式化数字的方式。

package com.gx.vo;
import java.text.DecimalFormat;
public class StringFormart{
//使用实例化对象时设置格式化模式
static public void Format(String patten,double value){
//实例化DeclmalFormat 对象
DecimalFormat my=new DecimalFormat();
String out=my.format(value);
System.out.println(value+"----"+patten+"----"+out);
}
//使用applyPattern()方法对数字进行格式化
static public void thenFormat(String patten,double value){
//实例化DeclmalFormat 对象
DecimalFormat my=new DecimalFormat();
my.applyPattern(patten);
System.out.println(value+"------"+patten+"------"+my.format(value));
}
public static void main(String[] args) {
Format("###,###.###", 123456.789);
Format(“00000000.###kg”, 123456.789);
//按照格式化模板格式化数字,不存在的位以0显示
Format(“000000.000”, 123.78);
//调用静态thenFormat()方法;
thenFormat("#.###%", 0.789);
//将小数点后格式化为两位
thenFormat("###.##", 123456.789);
//将数字转化为千分数形式
thenFormat(“0.00\u2030”, 0.789);
}
}
数字格式化结果如下:
在这里插入图片描述
在结果可以看到以“0”特殊字符构成的模板进行格式化时,当数字某伪不存在时,将显示0;而以“#”为特殊符号构成的模板进行格式化操作时,格式化后的数字位数与数字本身的位数一致。
在DecimalFormat类中除了可以设置格式化模式来格式化数字之外,还可以使用一些特殊数字进行格式化设置。例如:

 DecimalFormat my=new DecimalFormat();//实例化DeclmalFormat 对象
 my.setGroupingSize(2);//设置数字分组大小
 my.setGroupingUsed(false);//设置数字是否支持分组

2.创建DecimalMethod类,在类的主方法调用setGroupingSize ()和setGroupingUsed ()方法实现数字的分组。
package com.gx.vo;
import java.text.DecimalFormat;
public class DecimalMethod{
public static void main(String[] args) {
DecimalFormat my=new DecimalFormat();//实例化DeclmalFormat 对象
my.setGroupingSize(2);//设置数字分组大小
String out=my.format(123456.789);
System.out.println(“将两个数字以两个进行分组”+out);
my.setGroupingUsed(false);//设置数字是否支持分组
String out2=my.format(123456.789);
System.out.println(“不允许进行分组”+out2);
}
}
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值