`
qhd_liwei
  • 浏览: 104490 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多
在java中,把一个double或者BigDecimal的小数转换为字符串时,经常会用科学计数法表示,而我们一般不想使用科学计数法,可以通过:
DecimalFormat a = new DecimalFormat("#,##0.00000000");
        System.out.println(a.format(11111111.0000001000000001));
的方式来格式化输出字符串。

对于BigDecimal的小数,如果制定精度<=6, 则可以放心的使用其toString函数。但是对于>6的精度,有可能会使用科学计数法,查看器代码有如下判断:
long adjusted = -(long)scale + (coeff.length-1);
        if ((scale >= 0) && (adjusted >= -6)){
                  非科学计数法的toString.
        }
其中scale指BigDecimal的精度,
coeff对应使用BigInteger存储的值的toString字符串, coeff = intVal.abs().toString().toCharArray(),也就是说BigDecimal在对应精度下的整数值,例如BigDecimal ob = new BigDecimal(0.00000011), ob的精度为7, 则coeff="1";如果ob=new BigDecimal(0.10000011), 则coeff="1000001";如果ob=new BigDecimal(0.00000001), 则coeff="0";
http://blog.sina.com.cn/s/blog_5656b0020100cec7.html
分享到:
评论
2 楼 Bucher03 2011-08-12  
还是看不懂啊,看不懂
1 楼 scott________ 2011-03-31  
这个貌似更合适:
java.math.BigDecimal d = new java.math.BigDecimal    ("0.00000000000000000123456789000");
		String str = d.toPlainString(); 
//Returns a string representation of this BigDecimal without an exponent field.
		System.out.println(str);
//output:
//0.00000000000000000123456789000

相关推荐

    防止Double加double后形成科学计数法问题

    防止Double加double后形成科学计数法问题

    fastjson 输出double类型强制转为科学计数法问题

    在JSON序列化过程中,有时会遇到`double`类型数值在输出时被自动转换为科学计数法的情况。这是因为,当`double`类型的数值过大或过小时,为了节省存储空间和保持精度,JSON库(如Fastjson)通常会采用科学计数法进行...

    jackson json 转 map 数值科学计数法的问题解决.docx

    通过启用 DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS 选项,可以将 JSON 中的浮点数转换为 Java 的 BigDecimal 类型,从而避免科学计数法的表示方式。 下面是一个示例代码,演示如何使用 ObjectMapper 将 ...

    转换科学计数法的数值字符串为decimal类型的方法

    当需要将科学计数法的数字字符串转换成decimal时,这2种写法都报错: msg 8114, level 16, state 5, line 1 error converting data type varchar to numeric. select cast('0.12e+006' as decimal(18,2)); select ...

    解决Java中由于数据太大自动转换成科学计数法的问题

    在Java中,当我们处理大数据时,例如Long类型或Double类型的数字,可能会自动转换成科学计数法的形式,例如1.23456789E10。这种自动转换可能会导致数据的精度丢失或难以阅读。因此,我们需要一种方法来避免这种自动...

    java中将科学计数法转换普通计数法的简单方法

    在Java编程语言中,处理数字时,特别是在进行大数据计算或者显示时,可能会遇到科学计数法的表示形式。科学计数法是一种节省空间且方便表示极小或极大的数值的格式,例如1.23E+5代表123000。然而,在某些场景下,...

    科学计数法转换时间戳的方法

    在计算机编程中,科学计数法常用于表示大数值,如浮点数,尤其是在内存有限或者数据传输时需要节省空间的场景。时间戳是另一种表示时间的方式,它是一个整数或浮点数,代表从1970年1月1日(UTC/GMT的午夜)开始所...

    Java将科学计数法数据转为字符串的实例

    在Java编程语言中,处理数字数据时,有时我们需要将科学计数法表示的数值转换为普通格式的字符串,以便于阅读或输出。特别是在处理财务、科学计算或数据分析时,这种情况尤为常见。例如,当我们从Excel文件中导入...

    Java 精确计算-double-float-String

    4. **格式化输出**:使用`toPlainString()`方法可以得到不带科学计数法的字符串表示,而`toString()`则可能会使用科学计数法。 5. **转换类型**:如果需要将`BigDecimal`转换回`double`或`float`,可以使用`double...

    Java与MySQL中小数保存问题解析.pptx.pptx

    此外,Java还支持科学计数法,这种表示方式可以有效地表示非常大或非常小的数值,例如3.4E-2代表0.034。 MySQL数据库则提供了多种小数类型,包括浮点型(FLOAT和DOUBLE)和定点型(DECIMAL)。浮点型小数使用科学...

    Python(2)

    Python中的浮点类型类似Java语言中的double 类型,是双精度浮点型,可以直接用十进制或科学计数法表示。十进制数形式,由数字和小数点组成,且必须有小数点,如123.332等;科学计数法形式,如:2.1E5、

    JAVA数据类型

    在表示浮点数时,可以用十进制形式或者科学计数法,如123e3或123E3。 2. 字符类型:char类型,占用2个字节,使用Unicode字符集,能表示从0到65535的Unicode码点,包括各种字符和符号。字符常量用单引号括起,如'a'...

    Java 基本数据类型及表达式

    浮点数可以使用十进制、科学计数法表示,例如,`float f = 1.23f;`,`double d = 1.23d;`。 2. 布尔类型:boolean,仅有的两个值是true和false,用于逻辑判断,例如,`boolean flag = true;`。 3. 字符类型:char...

    Java基本数据类型---浮点类型.pdf

    4. **科学计数法表示**:以 `E` 或 `e` 结尾,表示科学计数法,如 `3.45E22` 表示 `3.45 × 10^22`,`3.45E-22` 表示 `3.45 × 10^-22`。 需要注意的是,由于浮点数的二进制表示方式,有些十进制的小数在转换为二...

    java 整型 浮点型 字符型 布尔型

    浮点型常量有两种表示形式:十进制数形式和科学计数法形式。浮点型变量的类型有 float 和 double 两种。float 类型用于表示小数,所表示的数据范围为 -3.4e38 到 3.4e38。double 类型用于表示更大的浮点数,所表示的...

    简单的科学计算器JAVA代码实现

    基础的科学计算功能包括但不限于:加法(+)、减法(-)、乘法(*)、除法(/)、指数运算(^)、对数运算(log)、平方根(sqrt)以及科学计数法等。为了实现这些功能,我们将在Java中创建一个类,可能命名为`...

    详解java中float与double的区别

    float 和 double 是 Java 中两种基本数据类型,都是用来表示实数的,但是它们有很大的区别。float 是单精度类型,精度是 8 位有效数字,取值范围是 10 的 -38 次方到 10 的 38 次方,float 占用 4 个字节的存储空间...

    Java3、类型转换(变量转换和方法转换).doc

    ` 不合法,科学计数法默认为 `double` 类型。 - `float foo=2.02f;` 合法,明确指定了 `float` 类型。 - `float foo=3.03d;` 不合法,明确指定了 `double` 类型,不能直接赋值给 `float` 类型。 - `float foo=0x...

    最新精品JAVA高级备课完美版——Java基本数据类型[参考].pdf

    浮点数可以使用小数点或科学计数法表示。例如: ```java float floatValue = 123.45f; doubledoubleValue = 987654321.1234567; ``` 需要注意的是,浮点数之间的比较不能直接用`==`,因为存在浮点误差。 总的来说,...

    Java基本数据类型.pdf

    浮点数可以以十进制、科学计数法(例如`1.23e4`)或十六进制(前缀0x)表示,如`3.14f`表示`float`类型的圆周率,`1.234d`表示`double`类型的数值。 在Java中,这些基本数据类型具有固定的大小和精度,不依赖于目标...

Global site tag (gtag.js) - Google Analytics