yhkn.net
当前位置:首页 >> jAvA中数值类型转换的问题,DouBlE类型显示科学计... >>

jAvA中数值类型转换的问题,DouBlE类型显示科学计...

在显示时候调用的是Double类的toString()方法.原因如下:而Double的toString()方法实际是调用了FloatingDecimal类的toJavaFormatString()方法,如下图 研究源码发现:科学计数法展示是因为FloatingDecimal类的decExponent属性 那么decExponent属性究竟是什么呢?简单来说,就是小数点向左移动decExponent就是正数,向右移动就是负数.移动几位就是几.而具体移动规则是移动到小数点左边为0,右边为非0时候停止.

DecimalFormat df=new DecimalFormat("##0.#####E0");System.out.println(df.format(6.36000));用格式转化的这个类,查一下api里有更详细的介绍,查一下吧

的方式来格式化输出字符串.对于BigDecimal的小数,如果制定精度<=6,则可以放心的使用其toString函数.但是对于6的精度,有可能会使用科学计数法,查看器代码有如下判断:long adjusted = -(long)scale + (coeff.length-1);

double类型直接打印或者输出的时候,如果数值过大就会转换成科学计数法,所以要自己定义方法,将double类型的值格式化输出,转换成你想要的格式的字符串就可以了

double是一个双精度实数类型,范围可在1.7E-308~1.7E+308,比float类型精度要高.一千万的数值位数已经很高了,不可能再写下去.为了书写方便以及在内存中的占位用科学计数比较方便.

你好,可以使用java.text.DecimalFormat ,格式化数字,比如123456double a = 2.3659874; //小数格式化,引号中的0.000表示保留小数点后三位(第四位四舍五入) DecimalFormat df = new DecimalFormat("0.000"); String num = df.format(a); System.out.println(num); //输出结果就是 2.366 具体你可以查DecimalFormat的使用方法 希望可以帮助到你

public class Test { public static void main(String[] args) { double a = 3.0; double b = 4.0; System.out.println(a+b); } } 结果7.0 怎么会输出那么多啊?

对Double类型的数字进行 格式化输出即可:核心代码如下: Double double1 = 123456789.123456789; DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");//格式化设置 System.out.println(decimalFormat.format(double1)); System.out.println(double1);

一、(1)使用Integer.parseInt()和Double.parseDouble()方法.(2)第二个问题不全啊,如果你想把数字转换为字符串的话.可以使用String.valueOf()方法,也可以用""+数字,来进行强转.(3)需要配合NumberFormat和BigDecimal来解决 http://apps.hi.baidu.com/share/detail/15540287 二、String str = new String("字符串".getBytes("GB2312"),"ISO-8859-1");

1. Double是对象,double是基本类型.2. 你好Double类型是double的包装类,在JDK1.5以后,二者可以直接相互赋值,称为自动拆箱和自动装箱.看你的提示,我推测你的jdk版本在1.5以前. 3. 如果是这样,可以用Double中的方法,将包装类

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.yhkn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com