ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数字格式化

2021-08-22 23:03:06  阅读:264  来源: 互联网

标签:格式化 数字 分组 123456.789 myFormat DecimalFormat


数字格式化

应用很普遍

在java中,没有格式化的数字遵循以下原则:

若数据绝对值大于0.001且小于10000000,使用常规小数形式表示;

若数据绝对值小于0.001或大于10000000,使用科学计数法表示。

一般用DecimalFormat类进行格式化操作,用于格式化十进制数字。可以在实例化DecimalFormat对象时传递数字格式,也可以通过DecimalFormat类中的applyPattern()方法来实现数字格式化

DecimalFormat类中的特殊字符及其说明

字符 说明
0 代表阿拉伯数字,使用特殊字符0表示数字的一位阿拉伯数字,若该位不存在数字,则显示0
# 代表阿拉伯数字,使用特殊字符#表示数字的一位阿拉伯数字,若该位存在数字,则显示字符;若该位不存在数字,则不显示
. 小数分隔符或或货币小数分隔符
- 负号
, 分组分隔符
E 分隔科学计数法中的尾数和指数
% 放置在数字的前缀或后缀,将数字乘以100显示为百分数
\u2030 放置在数字的前缀或后缀,将数字乘以1000显示为千分数
\u00A4 放置在数字的前缀或后缀,作为货币记号
' 单引号,当上述特殊字符出现在数字中时,应为特殊符号添加单引号,系统会将此符号视为普通符号处理
import java.text.DecimalFormat;

//使用实例化对象时设置格式化模式
 static public void SimgleFormat(String pattern,double value){
     DecimalFormat myFormat=new DecimalFormat(pattern);//实例化DecimalFormat对象
     String output=myFormat.format(value);             //将数字进行格式化
     System.out.println(value+""+pattern+""+output);
 }
 //使用applyPattern()方法来实现数字格式化
 static public void UseApplyPatternMethodFormat(String pattern,double value){
     DecimalFormat myFormat = new DecimalFormat();//实例化DecimalFormat对象
     myFormat.applyPattern(pattern);
     System.out.println(value+""+pattern+""+myFormat.format(value));
 }

 public static void main(String[] args) {
     SimgleFormat("###,###.###",123456.789);//调用静态方法
     SimgleFormat("00000000.###kg",123456.789);//在数字后加上单位

     //按照格式模板格式化,不存在的位以0显示
     SimgleFormat("000000.000",123.78);

     //调用静态UseApplyPatternMethodFormat()方法
     UseApplyPatternMethodFormat("#.###%",0.789);//将数字转换为百分数形式
     UseApplyPatternMethodFormat("###.##",123456.789);//将小数点后格式化为两位
     UseApplyPatternMethodFormat("0.00\u2030",0.789);//将数字转换千分数形式
/*
123456.789###,###.###123,456.789
123456.78900000000.###kg00123456.789kg
123.78000000.000000123.780
0.789#.###%78.9%
123456.789###.##123456.79
0.7890.00‰789.00‰
 */
 }

还可以使用一些特殊方法来格式化数字

DecimalFormat myFormat=new DecimalFormat();
myFormat.setGroupingSize(2);//设置数字分组的大小
myFormat.setGroupingUsed(false);//设置是否支持分组

实例如下

import java.text.DecimalFormat;

DecimalFormat myFormat=new DecimalFormat();
myFormat.setGroupingSize(2);//设置将数字分组为2
String output=myFormat.format(123456.789);
System.out.println("将数字以每两个数字分组"+output);

myFormat.setGroupingUsed(false);//设置是否支持分组
String output2=myFormat.format(123456.789);
System.out.println("不允许数字分组"+output2);
/*
将数字以每两个数字分组12,34,56.789
不允许数字分组123456.789
 */

标签:格式化,数字,分组,123456.789,myFormat,DecimalFormat
来源: https://www.cnblogs.com/valder-/p/15173970.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有