`
kingcean
  • 浏览: 24347 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

java中double类型转换成字符串自动格式化成科学计数法

    博客分类:
  • java
阅读更多
在使用double类型的时候,常常使用String.valueOf(Double d)方法来将double转换成String,而String.valueOf(Double)调用的是Double自身的toString()方法。
/**
     * Returns the string representation of the <code>double</code> argument.
     * <p>
     * The representation is exactly the one returned by the
     * <code>Double.toString</code> method of one argument.
     *
     * @param   d   a <code>double</code>.
     * @return  a  string representation of the <code>double</code> argument.
     * @see     java.lang.Double#toString(double)
     */
    public static String valueOf(double d) {
	return Double.toString(d);
    }

而Double自身的toString方法使用FloatingDecimal来对数字进行格式化,代码如下:
    public static String toString(double d) {
	return new FloatingDecimal(d).toJavaFormatString();
    }

该方法注释中写到:
  * <li>If <i>m</i> is less than 10<sup>-3</sup> or greater than or
     * equal to 10<sup>7</sup>, then it is represented in so-called
     * "computerized scientific notation." Let <i>n</i> be the unique
     * integer such that 10<sup><i>n</i></sup> &lt;= <i>m</i> &lt;
     * 10<sup><i>n</i>+1</sup>; then let <i>a</i> be the
     * mathematically exact quotient of <i>m</i> and
     * 10<sup><i>n</i></sup> so that 1 &lt;= <i>a</i> &lt; 10. The
     * magnitude is then represented as the integer part of <i>a</i>,
     * as a single decimal digit, followed by '<code>.</code>'
     * (<code>'&#92;u002E'</code>), followed by decimal digits
     * representing the fractional part of <i>a</i>, followed by the
     * letter '<code>E</code>' (<code>'&#92;u0045'</code>), followed
     * by a representation of <i>n</i> as a decimal integer, as
     * produced by the method {@link Integer#toString(int)}.

可以很明确的看到,如果数字大于10的7次方或者小于10的-3次方,就会使用科学计数法。这个在很多时候很适用,同时在很多地方也让很多人很头疼。想要避免这个问题,就要自己使用格式化类去重新格式化。最简单的使用DecimalFormat类去格式化,用这个可以很容易的得到不转换成科学计数法的字符串。
 DecimalFormat df = new DecimalFormat("###0.0#");//最多保留几位小数,就用几个#,最少位就用0来确定
String s=df.format(d);

这样就可以了~
分享到:
评论

相关推荐

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

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

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

    除了`BigDecimal`,Java的`NumberFormat`类也可以用来格式化数字,包括将科学计数法转换为字符串。`DecimalFormat`是`NumberFormat`的一个子类,专门用于处理十进制数值的格式化。下面是如何使用`DecimalFormat`的...

    delphi处理excel科学计数法

    如果需要更复杂的格式化,可以使用 Excel 的数字格式字符串,如 `'0.00'` 显示两位小数。 ##### 3. 保存并关闭 Excel 文件 完成对 Excel 文件的操作后,需要保存更改并关闭文件: ```pascal xlsobj....

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

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

    D39.威纶通科学计数法示例程序.rar

    2. **数值格式化**:威纶通的编程语言可能提供特定的函数或指令用于将数值转换为科学计数法格式,这通常涉及到字符串操作和数学运算。 3. **屏幕元素配置**:在触摸屏界面设计阶段,需设置文本框或标签元素来显示...

    JSP导出Excel,数字格式化成字符串

    对于每个数字值,可以先将其转换为字符串,再写入单元格,这样可以确保Excel不会自动格式化。 5. **写入到流并下载**:最后,将工作簿写入到HTTP响应的输出流中,设置正确的MIME类型和文件名,用户就可以在浏览器中...

    Float Convert delphi浮点数转换成字符串..rar

    1. **Format** 函数:这是一个通用的格式化字符串的函数,可以用于将数值转换为字符串。例如: ```delphi var MyFloat: Double; begin MyFloat := 3.141592653589793; Writeln(Format('%f', [MyFloat])); // 输出...

    C# Tostring 格式化输出字符串全解

    描述与内容摘要:本文深入解析了C#中ToString方法在格式化输出字符串时的各种应用场景,包括但不限于货币、十进制、科学记数法、固定小数点、常规、数字、以及十六进制格式的输出方式。同时,还介绍了如何通过特定的...

    C#实现把科学计数法(E)转化为正常数字值

    要将科学计数法转换为常规数字,我们可以使用`Decimal.Parse()`方法配合`NumberStyles`枚举来解析字符串。 下面是一个C#函数,名为`ChangeDataToD`,用于将科学计数法的字符串转换为`Decimal`类型: ```csharp ...

    Linux下科学计数法(e)转化为数字的方法

    `gawk`是GNU Awk的简称,它提供了一个名为`strtonum`的内建函数,可以直接将字符串形式的科学计数法转换为浮点数。例如: ``` [root@kevin ~]# echo "1.7615562e6"| gawk '$1=strtonum($1)' 1.76156e+06 ``` 2...

    MCU 字符串高级处理函数SPRINTF用法

    在微控制器(MCU)开发中,字符串处理是一项基础且重要的任务,经常会涉及将各种数据类型转换为字符串形式。C语言中,sprintf函数是处理此类任务的标准工具之一,它允许开发者将格式化的数据写入字符串中,相当于...

    完美解决gson将Integer默认转换成Double的问题

    完美解决Gson将Integer默认转换成Double的问题 Gson是Google开发的一款JSON解析库,广泛应用于Android和...使用自定义的Gson对象和Double类型的序列化器,可以正确地将Json字符串转换成Map,Object&gt;,而不会损失数据。

    Java 精确计算-double-float-String

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

    数字格式字符串.txt

    数字格式化通常涉及数字的分组、小数点处理、百分比表示、科学计数法表示以及根据数值正负的不同展示方式等。本文将详细介绍自定义数字格式字符串的基本概念及其使用方法。 #### 二、千位分隔符说明符与数字比例...

    C程序的格式字符串的用法

    - `e`: 输出浮点数的科学计数法形式。 - `g`: 输出`f`和`e`中较短的形式。 - `c`: 输出单个字符。 - `s`: 输出字符串。 2. **标志**: - `-`: 左对齐,右侧填充空格。 - `+`: 总是输出符号,正数前加空格,...

    如何将数字型转换成货币型

    `Double.parseDouble(s)`将字符串转换为`double`类型,然后通过`DecimalFormat`的`format`方法进行格式化。 #### 3. 格式模式详解 `DecimalFormat`支持多种符号和字符来构建格式模式。下面是一些常用的符号及其...

    C# String 的各种转换

    - **科学计数法 (E)**: ```csharp string result = string.Format("{0:E}", a / b); // "1.14649903184713E+01" ``` - **货币格式 (C)**: ```csharp string result = string.Format("{0:C}", a / b); // "$...

    电子教材:《Java语言程序设计-类》pdf版

    一旦`DecimalFormat`对象创建完成,就可以使用`format()`方法将`double`类型的数字转换为格式化的字符串。这一步骤的关键在于,`format()`方法能够根据之前设定的模式对数字进行格式化处理。 **format()方法的语法*...

    java基础之数组

    格式化数字是另一个重要的知识点,当我们需要在输出数字时配上单位、控制精度或使用科学计数法表示时,Java提供了java.text.DecimalFormat类来进行数字格式化。DecimalFormat类使用预定义的或自定义的模式来格式化...

    js字符串的各种格式的转换 ToString,Format

    除了`toString()`方法,JavaScript中的字符串格式化还常借助于`String.prototype.format()`方法或`string.format()`函数(在某些库中提供,如jQuery的`$.format`)。例如`string.Format("{0:f}", System.DateTime....

Global site tag (gtag.js) - Google Analytics