【Java数据格式化】使用DecimalFormat 对Float和double进行格式化

格式化包括如下内容:

  • 基本用法
  • 金钱格式;
  • 科学计数法;
  • 百分比计数法;
  • 嵌入文本;

  1. package com.sssppp.NumberFormat;
  2. import java.text.DecimalFormat;
  3. public class DecimalFormatExample {
  4. public static void main(String arg[]) {
  5. double piD=3.1415926;
  6. float piF=3.1415926f;
  7. System.out.println("----基本用法----");
  8. DecimalFormat formatter = new DecimalFormat("#.###");
  9. System.out.println("#.###");
  10. System.out.println(formatter.format(piD));
  11. System.out.println(formatter.format(piF));
  12. System.out.println();
  13. formatter.applyPattern("0.00000");
  14. System.out.println("0.00000");
  15. System.out.println(formatter.format(piD));
  16. System.out.println(formatter.format(piF));
  17. System.out.println();
  18. //金钱格式
  19. System.out.println("----金钱格式----");
  20. formatter.applyPattern("#,###,###");
  21. System.out.println("#,###,###");
  22. System.out.println(formatter.format(1300));
  23. System.out.println(formatter.format(123467898));
  24. System.out.println();
  25. formatter.applyPattern("‘$‘#,###,###");
  26. System.out.println("‘$‘#,###,###");
  27. System.out.println(formatter.format(1300));
  28. System.out.println(formatter.format(20000));
  29. System.out.println();
  30. //科学计数法
  31. System.out.println("----科学计数法----");
  32. formatter.applyPattern("#.#####E0");
  33. System.out.println("#.#####E0");
  34. System.out.println(formatter.format(299792458));
  35. formatter.applyPattern("00.####E0");
  36. System.out.println("00.####E0");
  37. System.out.println(formatter.format(299792458));
  38. System.out.println();
  39. System.out.println("----嵌入文本----");
  40. formatter.applyPattern("嵌入文本:#.#####E0");
  41. System.out.println("嵌入文本:#.#####E0");
  42. System.out.println(formatter.format(299792458));
  43. System.out.println();
  44. System.out.println("----以百分比方式计数----");
  45. formatter.applyPattern("#.##%");
  46. System.out.println("#.##%");
  47. System.out.println(formatter.format(0.12));
  48. System.out.println();
  49. }
  50. }

输出结果:

  1. ----基本用法----
  2. #.###
  3. 3.142
  4. 3.142
  5. 0.00000
  6. 3.14159
  7. 3.14159
  8. ----金钱格式----
  9. #,###,###
  10. 1,300
  11. 123,467,898
  12. ‘$‘#,###,###
  13. $1,300
  14. $20,000
  15. ----科学计数法----
  16. #.#####E0
  17. 2.99792E8
  18. 00.####E0
  19. 29.9792E7
  20. ----嵌入文本----
  21. 嵌入文本:#.#####E0
  22. 嵌入文本:2.99792E8
  23. ----以百分比方式计数----
  24. #.##%
  25. 12%

来自为知笔记(Wiz)

时间: 2024-11-05 03:37:32

【Java数据格式化】使用DecimalFormat 对Float和double进行格式化的相关文章

Java中的简单浮点数类型float和double不能够进行精确运算

在java中,简单的浮点类型float和double是不能够进行运算.我们先看下面的两个程序代码: 代码一: import java.util.Scanner; class Circle { double radius; static final double PI=3.14; public Circle(){this.radius=0;} public Circle(double r){this.radius=r;} public double getArea(){return PI*this

Java中浮点型数据Float和Double进行精确计算的问题

一.浮点计算中发生精度丢失  大概很多有编程经验的朋友都对这个问题不陌生了:无论你使用的是什么编程语言,在使用浮点型数据进行精确计算时,你都有可能遇到计算结果出错的情况.来看下面的例子. // 这是一个利用浮点型数据进行精确计算时结果出错的例子,使用Java编写,有所省略. double a = (1.2 - 0.4) / 0.1;System.out.println(a); 如果你认为这个程序的输出结果是“8”的话,那你就错了.实际上,程序的输出结果是“7.999999999999999”.好

java控制float和double的精度

在做读取Excel表格数据时,碰到有小数点的数字,用double和float来求和时会多出好多位小数,看起来总觉得怪怪的,怎样控制它的长度呢? DecimalFormat df = new DecimalFormat("########.0"); //四舍五入 value = Double.parseDouble(df.format(value)); 我这里是控制一位小数,如果要求两位,就写成########.00 java控制float和double的精度,布布扣,bubuko.co

Java 数据类型转换

int iValue = new Integer(strValue).intValue();String str = intObj.toString();int number = Integer.parseInt(str); public static Object read(String value, Class type) {        Object ret = value;        if (Integer.TYPE.equals(type)) {            ret =

Java数据类型和MySql数据类型对应表(转)

Java数据类型和MySql数据类型对应表 java mysql 数据类型对照 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N CHAR java.lang.String 1   BLOB L+N BLOB java.lang.byte[] -4   TEXT 65535 VARCHAR java.lang.String -1        

Java数据类型和MySql数据类型对应表

Java数据类型和MySql数据类型对应表: 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 TI

JAVA数据基本类型

byte(字节     8         -128 - 127                                           0shot(短整型)        16      -32768 - 32768                                         0int(整型) 32 -2147483648-2147483648 0long(长整型)        64   -9233372036854477808-923337203685447

java基础之float、double底层运算

目前java遵照IEEE制定的浮点数表示法来进行float,double运算.这种结构是一种科学计数法,用符号.指数和尾数来表示,底数定为2--即把一个浮点数表示为尾数乘以2的指数次方再添上符号. 我们来看一段java代码: public class FloatToBinary { public static void main(String[] args) { float f1=8.5f; System.out.println("f1底层数据(十进制):"+Float.floatTo

Java浮点数float和double精确计算的精度误差问题总结

1.float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结果出现误差. 原因:超出float精度范围,无法精确计算. float和double的精度是由尾数的位数来决定的.浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响. float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字: double:2^5