Double类型的数据如何保留两位小数? 各位大虾,现有Double类型的数据,如何转换为保留两位小数的数,返回值的类型仍然是Double类型的,而不是字符串类型。 比如     0,返回“0.00”;
提示:DecimalFormat       df       =       new       DecimalFormat( "#####0.00 ");                       System.out.println(df.format(d));     这段代码能够将Double类型的数据设置指保留两位,但是返回的是String类型,要让返回Double类型的,怎么办?
------解决方案--------------------------------------------------------
首先你要搞明白,什么是模型,什么是展现。
既然“客户的需求是希望能将0.0也显示为 0.00”,那么客户并没有要求说“希望0在内部保存的时候也保存为0.00”,他要的只是展现。所以,不论你存成什么样,只要你能展现的时候转成他要的格式不就行了。
如果你希望把一个0存储成0.00的形式,那我只好告诉你,只有string和bigdecimal可以选择,绝对不可能单纯用double实现。
对double来说,0和0.00永远是一样的。如果你要问为什么,我可以告诉你,这样表示出来的数你才会觉得比较合乎你从小接受的数的概念,否则就会有点乱套。
如果你有兴趣,可以仔细先看bigdecimal的javadoc,由于bigdecimal能分别表示0和0.0以及0.00等等,造成一个很怪的现象,就是,在bigdecimal的表示下:0.equals(0.0) 以及 0.equals(0.00) 都会返回假;同时,0.compareTo(0.0) 以及 0.compareTo(0.00) 却都会返回0。 BigDecimal rateDecimal = new BigDecimal(12);//12是一个double类型

BigDecimal  num=rateDecimal.setScale(1, BigDecimal.ROUND_HALF_UP);

num是12.00;用BigDecimal来帮助显示后面的零

ROUND_CEILING  大于等于该数的那个最近值
ROUND_DOWN  正数是小于等于该数的那个最近数,负数是大于等于该数的那个最近数
ROUND_FLOOR  小于等于该数的那个值
ROUND_HALF_DOWN  五舍六入
ROUND_HALF_EVEN  向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN 
ROUND_HALF_UP  四舍五入
ROUND_UNNECESSARY  计算结果是精确的,不需要舍入模式 
ROUND_UP  和ROUND_DOWN相反

java中double类型显示两个小数,比如12.00的更多相关文章

  1. Java中double类型的数据精确到小数点后两位

    Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585;BigDecimal b = new BigDecimal(f); d ...

  2. java double类型保留两位小数4种方法【转】

    4种方法,都是四舍五入,例: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberF ...

  3. JavaScript中Float类型保留两位小数

    JavaScript中Float类型保留两位小数 核心方法: num:要操作的数字     size:要保留的位数 parseFloat(num).toFixed(size); 实现代码如下:var  ...

  4. java double类型保留两位小数4种方法

    http://blog.csdn.net/huaishuming/article/details/17752365 ****************************************** ...

  5. 关于java中Double类型的运算精度问题

    标题     在Java中实现浮点数的精确计算    AYellow(原作) 修改    关键字     Java 浮点数 精确计算   问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...

  6. 关于java中Double类型的运算精度问题(转)

    Java Java double:浮点数:精确计算  public class Test{    public static void main(String args[]){        Syst ...

  7. Java中Double类型计算问题

    public class Test{    public static void main(String args[]){        System.out.println(0.05+0.01);  ...

  8. JAVA中double类型运算结果异常的解决

    问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题.比如: System.out.println(19.99+20); System.out.println(1.0-0.66); ...

  9. 如何使java中double类型不以科学计数法表示

    在java中,把一个double或者BigDecimal的小数转换为字符串时,经常会用科学计数法表示,而我们一般不想使用科学计数法,可以通过:DecimalFormat a = new Decimal ...

随机推荐

  1. C# winform窗体传值 利用委托 子窗体传值给父窗体

    首先在Form2中定义委托和事件: //声明委托 和 事件 public delegate void TransfDelegate(String value); public partial clas ...

  2. mysql编码不统一形成的错误

    错误提示:[Err]1267 - Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) ...

  3. hibernate 自动创建表中文乱码问题

    <property name="connection.url" > <![CDATA[jdbc:mysql:///test?useUnicode=true& ...

  4. https迁移实践手记

    前言什么是公钥和私钥?使用OpenssL生成私钥.使用Keytool导出私钥.主流数字证书都有哪些格式?SSL证书类型注册SSL证书使用OpenSSL工具生成CSR文件使用keytool工具生成CSR ...

  5. reduce的用法

    在不增加变量的情况下,统计数组中各元素出现的次数. ```jsfunction countItem (arr) { // 写入你的代码}countItem(['a', 'b', 'a', 'c', ' ...

  6. java.utils.UUID类介绍

    1 UUID介绍 UUID (Universally Unique Identifier)缩写,即通用唯一识别码,也是被开源软件基金会 (Open Software Foundation, OSF) ...

  7. IE678下,select 诡异的样式

    我没有IE6,我用IE5测试的. IE5下的测试结果:貌似只能设置 width ,设置其他的都失效,连 height 都不例外. IE7下的测试结果:垂直居中失效.边框失效,宽高生效. IE8下的测试 ...

  8. Redis学习笔记--常用命令

    以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...

  9. mariadb sequence

    MariaDB 10.3 正式版推出后,有了像 Oracle.PostgreSQL 里的序列特性. 同时表字段AUTO_INCREMENT原特性还保持,但是sequence特性在某些特定情境还是很有用 ...

  10. [转]js 回车转成TAB(利用tabindex)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...