数据格式化

DecimalFormat,NumberFormat

在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,现稍微总结如下。 
主要使用的类:java.text.DecimalFormat 
1。实例化对象,可以用如下两种方法: 
      DecimalFormat df=(DecimalFormat)NumberFormat.getInstance(); 
      DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
     因为DecimalFormat继承自NumberFormat。 
2。设定小数位数 
系统默认小数位数为3,如: 
    DecimalFormat df=(DecimalFormat)NumberFormat.getInstance(); 
    System.out.println(df.format(12.3456789)); 
输出:12.346 
现在可以通过如下方法把小数为设为两位: 
  df.setMaximumFractionDigits(2); 
    System.out.println(df.format(12.3456789)); 
则输出为:12.35 
3。将数字转化为百分比输出,有如下两种方法: 
(1) 
  df.applyPattern("##.##%"); 
    System.out.println(df.format(12.3456789)); 
    System.out.println(df.format(1)); 
    System.out.println(df.format(0.015)); 
输出分别为:1234.57%    100%      1.5% 
(2) 
    df.setMaximumFractionDigits(2); 
    System.out.println(df.format(12.3456789*100)+"%"); 
    System.out.println(df.format(1*100)+"%"); 
    System.out.println(df.format(0.015*100)+"%"); 
输出分别为: 
1,234.57%     100%     1.5% 
4。设置分组大小 
     DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
df1.setGroupingSize(2); 
    System.out.println(df1.format(123456789)); 
输出:1,23,45,67,89 
还可以通过df1.setGroupingUsed(false);来禁用分组设置,如: 
     DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
    df1.setGroupingSize(2); 
df1.setGroupingUsed(false); 
    System.out.println(df1.format(123456789)); 
输出:123456789 
5。设置小数为必须为2位 
    DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance(); 
  df2.applyPattern("0.00"); 
    System.out.println(df2.format(1.2)); 
输出:1.20

//定义一个数字格式化对象,格式化模板为".##",即保留2位小数. 
     DecimalFormat a = new DecimalFormat(".##"); 
     String s= a.format(333.335); 
     System.err.println(s); 
     //说明:如果小数点后面不够2位小数,不会补零.参见Rounding小节 
     //---------------------------------------------

//--------------------------------------------- 
     //定义一个数字格式化对象,格式化模板为".##",即保留2位小数. 
     DecimalFormat a = new DecimalFormat(".##"); 
     String s= a.format(333.335); 
     System.err.println(s); 
     //说明:如果小数点后面不够2位小数,不会补零.参见Rounding小节 
     //---------------------------------------------

//----------------------------------------------- 
     //可以在运行时刻用函数applyPattern(String)修改格式模板 
     //保留2位小数,如果小数点后面不够2位小数会补零 
     a.applyPattern(".00"); 
     s = a.format(333.3); 
     System.err.println(s); 
     //------------------------------------------------

//------------------------------------------------ 
     //添加千分号 
     a.applyPattern(".##\u2030"); 
     s = a.format(0.78934); 
     System.err.println(s);//添加千位符后,小数会进三位并加上千位符 
     //------------------------------------------------

//------------------------------------------------ 
     //添加百分号 
     a.applyPattern("#.##%"); 
     s = a.format(0.78645); 
     System.err.println(s); 
     //------------------------------------------------

//------------------------------------------------ 
     //添加前、后修饰字符串,记得要用单引号括起来 
     a.applyPattern("‘这是我的钱$‘,###.###‘美圆‘"); 
     s = a.format(33333443.3333); 
     System.err.println(s); 
     //------------------------------------------------

//------------------------------------------------ 
     //添加货币表示符号(不同的国家,添加的符号不一样 
     a.applyPattern("\u00A4"); 
     s = a.format(34); 
     System.err.println(s); 
     //------------------------------------------------

//----------------------------------------------- 
     //定义正负数模板,记得要用分号隔开 
      a.applyPattern("0.0;‘@‘-#.0"); 
      s = a.format(33); 
      System.err.println(s); 
      s = a.format(-33); 
      System.err.println(s); 
      //----------------------------------------------- 
    
     //综合运用,正负数的不同前后缀 
     String pattern="‘my moneny‘###,###.##‘RMB‘;‘ur money‘###,###.##‘US‘"; 
     a.applyPattern(pattern); 
     System.out.println(a.format(1223233.456));

时间: 2024-10-29 03:48:06

数据格式化的相关文章

在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数)

//在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数) function formatNum(num, n) {//参数说明:num 要格式化的数字 n 保留小数位 num = String(num.toFixed(n)); var re = /(-?\d+)(\d{3})/; while (re.test(num)) num = num.replace(re, "$1,$2") ret

SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显

在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/

IO-04. 混合类型数据格式化输入(5)

IO-04. 混合类型数据格式化输入(5) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 乔林(清华大学) 本题要求编写程序,顺序读入浮点数1.整数.字符.浮点数2,再按照字符.整数.浮点数1.浮点数2的顺序输出. 输入格式: 输入在一行中顺序给出浮点数1.整数.字符.浮点数2,其间以1个空格分隔. 输出格式: 在一行中按照字符.整数.浮点数1.浮点数2的顺序输出,其中浮点数保留小数点后2位. 输入样例: 2.12 88 c 4

06-0. 混合类型数据格式化输入(5)

本题要求编写程序,顺序读入浮点数1.整数.字符.浮点数2,再按照字符.整数.浮点数1.浮点数2的顺序输出. 输入格式: 输入在一行中顺序给出浮点数1.整数.字符.浮点数2,其间以1个空格分隔. 输出格式: 在一行中按照字符.整数.浮点数1.浮点数2的顺序输出,其中浮点数保留小数点后2位. 输入样例: 2.12 88 c 4.7 输出样例: c 88 2.12 4.70 1 #include <stdio.h> 2 3 int main() 4 { 5 double a, d; 6 int b;

IO-04. 混合类型数据格式化输入

本题要求编写程序,顺序读入浮点数1.整数.字符.浮点数2,再按照字符.整数.浮点数1.浮点数2的顺序输出. 输入格式: 输入在一行中顺序给出浮点数1.整数.字符.浮点数2,其间以1个空格分隔. 输出格式: 在一行中按照字符.整数.浮点数1.浮点数2的顺序输出,其中浮点数保留小数点后2位. 输入样例: 2.12 88 c 4.7 输出样例: c 88 2.12 4.70C语言代码实现: 1 #include <stdio.h> 2 3 int main() 4 { 5 int i; 6 char

springmvc--数据转换&amp;数据格式化&amp;数据校验

数据绑定流程如下: 1.springmvc主框架将servletRequest对象及目标方法的实例传递给WebDataBinderFactory实例,以创建DataBinder实例对象 2.DataBinder调用装配在spring mvc上下文中的ConversionService组件进行数据类型转换,格式化工作,将servlet中的请求信息填充到入参对象中 3.调用Validator组件对已经绑定了请求消息的入参对象进行数据合法性校验,并最终生成数据绑定结果BindingData对象 4.s

PAT IO-04 混合类型数据格式化输入(5)

1 /* 2 *PAT IO-04 混合类型数据格式化输入(5) 3 *2015-08-01 4 作者:flx413 5 */ 6 #include<stdio.h> 7 int main() 8 { 9 int a; 10 float b, d; 11 char c; 12 scanf("%f%d %c%f", &b, &a, &c, &d); 13 printf("%c %d %.2f %.2f", c, a, b,

Android数据格式化

1.文件大小格式化: Log.d(TAG, Formatter.formatFileSize(this, 100)); //100 B Log.d(TAG, Formatter.formatFileSize(this, 1024*2)); //2.00 KB Log.d(TAG, Formatter.formatFileSize(this, 10000000)); //9.54 MB 2.日期格式化: int flagsDate = DateUtils.FORMAT_SHOW_DATE; int

大容量导入和导出数据 -- 格式化文件生成

大容量导入和导出数据 -- 格式化文件生成 SQL Server 支持两种类型的格式化文件:非 XML 格式和 XML 格式.非 XML 格式是 SQL Server 早期版本支持的原始格式. 通常,XML 与非 XML 格式化文件可以互换. 但是,建议您为新的格式化文件使用 XML 语法,因为与非 XML 格式化文件相比,格式化文件具有多项优点. 格式化文件基于指定的数据类型选项(-n.-c.-w 或 -N)以及表或视图分隔符. 创建非XML格式化文件 若要使用 bcp 命令创建格式化文件,请

开源跨平台数据格式化框架概览

说到数据格式化框架,就不得不提到 Google 的 Protocol Buffers,Facebook 的 Thrift,还有 Apache Hadoop 推出的 Avro.Microsoft 最近开源的 Bond 也是一种用于数据格式化的可扩展框架,其适用的应用场景包括服务间通信.大数据存储和处理等. 为什么会有这么多关于数据格式处理的框架?它们都在解决什么问题呢?我们先来观察一下典型的服务间通信的结构. 通常,在设计服务间通信时,我们所要面对的基本问题有: 如何传输数据? 使用什么协议通信?