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

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

在显示时候调用的是Double类的toString()方法。原因如下: 而Double的toString()方法实际是调用了FloatingDecimal类的toJavaFormatString()方法,如下图 研究源码发现:科学计数法展示是因为FloatingDecimal类的decExponent属性 那么decExponent...

可以先用BigDecimal保存这个double,需要使用的时候再转为double. public static void main(String[] args) { BigDecimal bigDecimal = new BigDecimal("123456789.123456789"); String result = bigDecimal.toString(); System.out.println(res...

double d = 123456789123456.789D; System.out.println(String.format("%20.3f", d)); ------------------------------------ double d = 121113456789123456.789D; System.out.println(String.format("%.4f", d)); 这个可以不考虑整数部分。无...

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

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

package cn.jinan.string;public class StringUtils {public static void main(String[] args) {double d = 3.1415926;String s = String.valueOf(d);System.out.println(s);}}上面说的正确,你可以参考这个小demo

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

^符号在java中是做按位异或操作,而不是做乘方.. 所以这里你自制的"科学表示法"是无效的, 一般科学表示法不被用在java的语言层面, 而可能被用在java输出成文本的表现形式中..

把从数据库里拉出来的数据在显示的时候强转一下类型就可以了

将2.12转换成科学计数法2.1200e+00显示的Java程序如下 public class A { public static void main(String[] args) { double d=2.12; String s=String.format("%e", d);//%e表示结果被格式化为用计算机科学记数法表示的十进制数 System.out.print...

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