JavaSE基础之double数据类型的格式化

1、double 数据类型的格式化工具类:DoubleFormatUtil.java

 package cn.com.zfc.util;

 import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat; /**
*
* @title DoubleFormatUtil
* @describe double 数据类型的精度确定工具类:四舍五入(保留两位小数)
* @author 张富昌
* @date 2017年4月5日下午9:12:29
*/
public class DoubleFormatUtil {   // 1、使用 String 类的静态 format()方法 来确定 double 数据类型的精度
  public static String userString(double n) {
    return String.format("%.2f", n);
  }   // 2、使用 DecimalFormat 对象的 format()方法
  public static String userDecimalFormat(double n) {
    DecimalFormat decimalFormat = new DecimalFormat("#.00");
    return decimalFormat.format(n);
  }   // 3、使用 BigDecimal 对象的 setScale()方法
  public static double userBigDecimal(double n) {
    BigDecimal bigDecimal = new BigDecimal(n);
    return bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  }   // 4、使用 NumberFormat 对象的 setMaximumFractionDigits()和format()方法
  public static String userNumberFormat(double n) {
    NumberFormat numberFormat = NumberFormat.getNumberInstance();
    numberFormat.setMaximumFractionDigits(2);
    return numberFormat.format(n);
  }   // 5、使用 Math 类的静态 round()方法
  public static double userMath(double n) {
    return (double) (Math.round(n * 100) / 100.0);
  } }

2、测试double 数据类型的格式化工具类:TestDoubleFormatUtil.java

 package cn.com.zfc.example;

 import cn.com.zfc.util.DoubleFormatUtil;

 /**
*
* @title DoubleFormat
* @describe double 类型数据类型保留精度
* @author 张富昌
* @date 2017年4月5日下午9:10:45
*/
public class TestDoubleFormatUtil {
  public static void main(String[] args) {
    double n = 123.23523;
    System.out.println("原数:" + n);
    System.out.println("StringFormat:" + DoubleFormatUtil.userString(n));
    System.out.println("Math:" + DoubleFormatUtil.userMath(n));
    System.out.println("NumberFormat:" + DoubleFormatUtil.userNumberFormat(n));
    System.out.println("BigDecimal:" + DoubleFormatUtil.userBigDecimal(n));
    System.out.println("DecimalFormat:" + DoubleFormatUtil.userDecimalFormat(n));
  }
}

JavaSE基础之double数据类型的格式化的更多相关文章

  1. javase基础笔记2——数据类型和面向对象

    API:Application program interface  程序调用一个方法去实现一个功能 正则表达式:regex 用来匹配的 javaEE里边有三大框架 SSH struts spring ...

  2. JavaSE基础(四)--Java基本数据类型

    Java 基本数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此,通过定义不 ...

  3. javaSE基础05

    javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...

  4. javaSE基础02

    javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...

  5. javase基础复习攻略《二》

    今天就开始的真正走进JAVASE的世界,本篇介绍的是:JAVASE基础语法,大家如果有C语言的基础,对于本节内容一定感觉非常轻松,编程语言之间的都是相通的,只不过C语言属于面向过程编程,而JAVA语言 ...

  6. 基础1 JavaSe基础

    JavaSe基础 1. 九种基本数据类型的大小,以及他们的封装类 boolean 无明确指定 Boolean char 16bits Character byte 8bits Byte short 1 ...

  7. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  8. javaSE基础04

    javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...

  9. javaSE基础03

    javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...

随机推荐

  1. js 禁用右键菜单、拖拽、选中、复制

    //禁用拖拽 document.ondragstart = function () { return false; }; /** * 禁用右键菜单 */ document.oncontextmenu ...

  2. 20165227 实验二《Java面向对象程序设计》实验报告

    2017-2018-4 20165227实验二<Java面向对象程序设计>实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉 ...

  3. Hibernate5笔记9--Hibernate注解式开发

    Hibernate注解式开发: (1)注解式开发的注意点: Hibernate中使用注解,主要是为了替代映射文件,完成“类到表,属性到字段”的映射.  JPA提供了一套功能强大的注解.Hibernat ...

  4. Linux输入子系统:多点触控协议 -- multi-touch-protocol.txt【转】

    转自:http://blog.csdn.net/droidphone/article/details/8434768 Multi-touch (MT) Protocol --------------- ...

  5. jenkins主从服务器部署

    当服务器为linux系统但也有部分ios代码,此时就需要添加一个从jenkins以便编译ios代码.或者需要多个job同时编译这时就需要搭建主从服务器. 1.主(master)节点安装jenkins ...

  6. java基础81 jsp的内置对象(网页知识)

    1.什么是内置对象? 在jsp开发中,会频繁使用到一些对象,如:HttpSession,ServletContext,HttpServletRequest.      如果每次使用这些对象时,都要去创 ...

  7. java基础48 IO流技术(序列流)

    本文知识点目录: 1.SequenceInputStream序列流的步骤    2.实例    3.附录(音乐的切割与合并) 1.SequenceInputStream序列流的步骤 1.找到目标文件  ...

  8. 洛谷P2024食物链

    传送门啦 这道题的特殊之处在于对于任意一个并查集,只要告诉你某个节点的物种,你就可以知道所有节点对应的物种. 比如一条长为4的链 甲->乙->丙->丁 ,我们知道乙是A物种.那么甲一 ...

  9. CF401D 【Roman and Numbers】

    题意将n(n<=10^18)的各位数字重新排列(不允许有前导零)  求  可以构造几个mod m等于0的数字解法状压f[S][k] 表示选用的位数集合为S,mod m 为k的方案数注意不能有前导 ...

  10. Centos之关机和重启命令

    shutdown命令 shutdown [选项] 时间 -c:取消前一个关机命令 -h:关机 -r:重启 [root@localhost ~]# date 2017年 06月 21日 星期三 15:4 ...