首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用于将IEEE 754 double转换为字符串的纯Java代码

以下是用于将IEEE 754 double转换为字符串的纯Java代码:

代码语言:java
复制
public class DoubleToStringConverter {
    public static String doubleToString(double value) {
        StringBuilder sb = new StringBuilder();
        if (value < 0) {
            sb.append("-");
            value = -value;
        }
        int exponent = 0;
        while (value >= 10) {
            value /= 10;
            exponent++;
        }
        while (value < 1) {
            value *= 10;
            exponent--;
        }
        sb.append((int) value);
        if (exponent != 0) {
            sb.append("E");
            sb.append(exponent);
        }
        return sb.toString();
    }
}

这段代码将一个IEEE 754 double类型的数字转换为字符串,并且可以处理负数和科学计数法表示。它使用了一个StringBuilder来构建字符串,并且在转换过程中使用了两个while循环来处理指数部分。最后,它将转换后的字符串返回。

这段代码可以应用于各种场景,例如在数据库中存储数字时需要将其转换为字符串,或者在网络通信中需要将数字转换为字符串进行传输等。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java jsonobjectList_javaJSONObject转换为List或JSONArray简单代码?「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 我已经通过各种线程阅读并发现了类似的问题,但在找到解决我特定问题方法方面却相当不成功....[{“locationId”:2,”quantity”:1,”productId”:1008}]}orr’s type = class org.json.simple.JSONObject 我正在尝试这些数据放入数组.../列表/任何可以使用密钥地方,470,471来检索数据....orderOneKey = (JSONObject)orderOne.get(0); System.out.println(orderOneKey.get(“productId”)); 这就是我所追求,...编辑: 显然我无法回答8个小时问题: 感谢朋友帮助和一些摆弄,我发现了一个解决方案,我确信它不是最有说服力,但它正是我所追求: for(Object key: orr.keySet()) { JSONArray

8.9K20
  • JavaScript 浮点数之迷:0.1 + 0.2 为什么不等于 0.3?

    带着这些疑问本文重点梳理这背后原理及浮点数在计算机中存储机制。 通过本文你能学到什么? 浮点数先修知识,更好帮你理解本文知识 IEEE 754 标准是什么?...(一个数 -1 次方等于该数倒数,例如 = ) 在 IEEE 754 标准中也类似,只不过它是以一个二进制数来表示,底数为 2,以下为 0.1 二进制表达式: 4. 十进制小数如何二进制?...十进制小数二进制,小数部分,乘 2 取整数,若乘之后小数部分不为 0,继续乘以 2 直到小数部分为 0 ,取出整数正向排序。...IEEE 754 常用两种浮点数值表示方式为:单精确度(32位)、双精确度(64位)。例如, C 语言中 float 通常是指 IEEE 单精确度,而 double 是指双精确度。...print 语句会将 0.30000000000000004 转换为字符串并将其缩短为 “0.3”,可以使用 print(repr(.1 + .2)) 获取所需要浮点数运算结果。

    4K31

    Java数据类型(八种基本数据类型 + 四种引用类型)、数据类型转换

    Long float 4字节(32位) 0.0f 符合IEEE754...符合IEEE754标准浮点数,4.9E-324 ~ 1.7976931348623157E308Double char 2字节(16位) '\u0000'...自动装箱是指基本类型值自动转换为对应包装类型对象,如int Integer,Integer integer = 100,底层调用了Interger.valueOf(100)方法;而自动拆箱则是包装类型对象自动转换为基本类型值...转换从低级到高级:byte、short、char(三者同级)——> int ——> long ——> float ——> double自动类型转换:代码无需任何处理,在代码编译时 编译器会自动进行处理。...ValueOf方法 2)直接使用 String类+ (即字符串拼接),任意字符串和其他类型"+" 都会把其他类型转为字符串 String str1 = String.valueOf(aInt

    9.3K21

    Java探索之旅】数据类型与变量 浮点型,字符型,布尔型,字符串

    前言 在Java编程中,了解不同类型变量是至关重要。本文介绍Java各种变量类型,包括浮点型、字符型和布尔型,以及字符串类型使用。...如果想得到 带小数点浮点数 需要使用 double 类型计算 double a = 1.0; double b = 2.0; System.out.println(a / b); // 输出0.5 神奇代码...double 类型内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限内存空间表示可能无限小数, 势 必会存在一定精度误差,因此浮点数是个近似值,并不是精确值 单精度浮点型...float num = 1.0f; // 写作 1.0F 也可以 System.out.println(num); float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准....和s2进行拼接 } 2.1 转化 在某些情况下,需要将字符串和整形数字之间进行转换 intString int num = 10; // 方法1 String str1 = num + ""; //

    13510

    Scala 基础 (二):变量和数据类型

    中不同是:object trait with implicit match yield def val var 字符串 基本语法 关键字为 String 通过 + 号连接 *用于一个字符串复制多次拼接...scala from java") writer.close() } } 二、数据类型 Java数据类型 基本类型:char、byte、short、int、long、float、double...、boolean 对应包装类:Character、Byte、Short、Integer、Long、Float、Double、Boolean 由于Java有基本类型,而且基本类型不是真正意义对象,Java...754 标准单精度浮点数 Double [8] 64 位 IEEE 754 标准双精度浮点数 默认为Double类型 举个栗子: val f1: Float = 1.232f val...高精度数据嘀精度时会报错。 Byte,Short 和 Char 之间不会相互自动转换。 Byte,Short,Char 他们三者可以计算,在计算时首先转换为 Int 类型。

    84920

    0.1 + 0.2 不等于 0.3?原来是因为这个

    +38 双精度浮点数(double) 在内存中占8个字节、有效数字16位、表示范围:-1.79E+308 ~ +1.79E+308 溯源:IEEE 754与ECMAScript 05 IEEE 754...所谓 IEEE754 标准,全称 IEEE 二进制浮点数算术标准,这个标准定义了表示浮点数格式等内容,类似这样: value = sign x exponent x franction 也就是浮点数实际值...在 IEEE754 中,规定了四种表示浮点数值方式:单精确度(32位)、双精确度(64位)、延伸单精确度、延伸双精确度。...ECMAScript 对于IEEE754实践 ECMAScript 中 Number 类型使用 IEEE 754 标准来表示整数和浮点数值,采用就是双精确度,也就是说,会用 64 位来储存一个浮点数...小 结 计算机存储双进度浮点数,需要先把十进制转换为二进制科学计数法形式,然后计算机以一定规则(IEEE 754)存储,因为存储时有位数限制(双进度8字节,64位),末位就需要取近似值(0舍1入)

    45420

    基础数据类型之Double详解

    此方法NaN全部规范化为指定固定值   依赖  doubleToRawLongBits doubleToRawLongBits(double) 根据 IEEE 754 浮点...此方法NaN全部规范化为指定固定值   依赖  doubleToRawLongBits doubleToRawLongBits(double) 根据 IEEE 754 浮点...值相同时,结果为 true 为此,当且仅当方法 doubleToLongBits(double) 应用于两个值所返回 long 值相同时,才认为这两个 double 值相同..., double) 总结 其实浮点数表示形式与使用规范才是重点 就像Float似的, Double只是double包装,double也只是IEEE754 标准一个实现,根本还是在于标准理解...Double  和 Float 提供方法结构基本上是一样,毕竟都是浮点数,标准也都是IEEE754  至此,已经介绍了,基本类型包装类中数值部分 也就是Byte  Short

    3.8K10

    Java 基本类型各种运算,你真的了解了么?

    低精度类型高精度,Java 是怎么处理呢? 隐式转换 这种情况其实本质不会损失精度,因此 Java 会进行类型自动转换,也叫隐式类型转换。 比如以下这段代码,它输出你能猜到么?...当给定一个 String 操作数和一个整数操作数时,这个运算符就会把整数操作数转换为表示其十进制形式 String,两个字符串串联起来,生成一个新创建 String。 以下代码会输出什么呢?...在符号位右侧分配 8 位用来存储指数,IEEE754 标准规定阶码位存储是指数对应移码,而不是指数原码或补码。 所谓移码,就是一个真值在数轴上正向平移一个偏移量后得到。...最右侧分配连续 23 位用来存储有效数字,IEEE754 标准规定尾数以原码表示,规格化表示省略 1.,double 双精度浮点数指数是 11 位,尾数部分是 52 位。...IEEE 754 规定对阶移动方向为向右移动,即选择阶码小数进行操作。 尾数求和。尾数按位相加求和,负数的话先补码再运算。 结果规格化。计算结果可能不符合规格化形式,此时要将其规格化。

    75520

    简单加减运算为何还会出bug?

    根据IEEE 754标准,E指数部分是无符号整型数据,因此float类型E取值范围为0~255,double类型E取值范围为0~2047。...另外,在实际小数二进制表示中,指数部分可能为负数,为了表示负数,IEEE 754规定,计算机中E部分实际存储值为实际值加上中位值(float类型中位数为127,double类型中位数为1023)。...所以,float类型数据,E用126表示-1,128表示1;double类型数据,E用1021表示-2,1025表示2。 以上便是浮点数在计算机底层存储过程。 浮点数二进制 ?...如何一个浮点数转为符合IEEE 754标准数据?...(4)结果转为符合IEEE 754标准二进制数据,尾数左移14位,指数值-14,结果为0(S) 01111101(E) 10111000100000000000000(M),转换为10进制为0.43017578125

    89330

    接口回 Long 值,竟然被偷了

    昨天下午,有伙伴儿在群里面问了下面这么个问题: 数据库用bigint存储了记录ID,Java代码用Long类型映射记录对应ID值;前端调用SpringBoot接口获取数据,后端debug时Long...JS 遵循 IEEE 754 规范,采用双精度存储(double precision),占用 64 bit。...; SpringBoot对象序列化默认采用是Jackson,有以下三种方式来数值类型转换为文本串 测试使用接口及对象: @GetMapping("/user") public User getUser...和age被转换成了文本 优点 灵活,针对对象属性配置,想那个就那个,不会干扰到其他属性或者对象 缺点 每个需要转换属性都需要配置,有点苦力活意思 方式二:全局配置,数值类型转换为文本 如果需要将所有的数值类型全部转换成文本...,数值类型全部转换成字符串返回 测试示例: { "id": "1508733541883731970", "name": "zhangsan", "age": "10", "gender

    2K10

    Java SE语法篇】2.数据类型和变量

    类型内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限内存空间表示可能无限小数, 势 必会存在一定精度误差,因此浮点数是个近似值,并不是精确值 3.4.2 单精度浮点型 loat...num = 1.0f; // 写作 1.0F 也可以 System.out.println(num); 注意事项: float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准...范围比int范围大,会有数据丢失,不安全 float f = 3.14F; double d = 5.12; d = f; // 编译器会将f转换为double,然后进行赋值 f = d; //...double表示数据范围大,直接float交给double会有数据丢失,不安全 byte b1 = 100; // 编译通过,100没有超过byte范围,编译器隐式100换为byte byte...// double-->float, 数据范围由大到小,需要强,否则编译失败 a = d; // 报错,类型不兼容 a = (int)d; // int没有double表示数据范围大,需要强

    7810

    知识改变命运 第二集:Java数据类型与变量

    4 double 类型内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限内存空间表示可能无限小数, 势必会存在一定精度误差,因此浮点数是个近似值,并不是精确值。..., 同样遵守 IEEE 754 标准....,直接float交给double会有数据丢失,不安全 byte b1 = 100; // 编译通过,100没有超过byte范围,编译器隐式100换为byte byte b2 = 257; //...-->float, 数据范围由大到小,需要强,否则编译失败 a = d; // 报错,类型不兼容 a = (int)d; // int没有double表示数据范围大,需要强,小数点之后全部丢弃 byte...一个字面值常量进行赋值时候, Java 会自动针对数字范围进行检查 4.

    9410

    15 张图带你深入理解浮点数

    这要回到 IEEE754 标准关于浮点数规定。 5、浮点数 IEEE754 表示 上文提到,浮点数由四个部分构成,那 IEEE754 标准是如何规定它们存储方式呢?...一般地,IEEE754 浮点数有两种类型:单精度浮点数(float)和双精度浮点数(double),还有其他,不常用。单精度浮点数使用 4 字节表示;双精度浮点数使用 8 字节表示。...IEEE754 规定,在二进制数中,通过移位,小数点前面的值固定为 1。IEEE754 称这种形式浮点数为规范化浮点数(normal number)。...在 Java 语言中,通过 Float 或 Double 类中常量可以获得:Float.POSITIVE_INFINITY、Float.NEGATIVE_INFINITY。...比如 Go 语言 math 标准库;Java java.lang.Float/Double 等包。

    3K32

    php强制转换浮点型到整型出现结果不符合预期

    使用php浮点数int型时,出现转换结果不符合预期,直接转换出现问题在其他强类型语言中可能会有意识去规避,而php能从心所欲,反倒会出现这种细节问题。...$a = 0.58; $b = $a * 100; $c = intval($b); var_dump($b);// double(58) var_dump($c); //int(57) 翻到php...尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致最大相对误差为 1.11e-16。非基本数学运算可能会给出更大误差,并且要考虑到进行复合运算时误差传递。...此外,以十进制能够精确表示有理数如 0.1 或 0.7,无论有多少尾数都不能被内部所使用二进制精确表示,因此不能在不丢失一点点精度情况下转换为二进制格式。...其次可以选浮点数字符串,再将字符串转成int类型。

    2.8K20

    小浩发现这篇浮点数文章讲真不错!

    这要回到 IEEE754 标准关于浮点数规定。 5、浮点数 IEEE754 表示 上文提到,浮点数由四个部分构成,那 IEEE754 标准是如何规定它们存储方式呢?...一般地,IEEE754 浮点数有两种类型:单精度浮点数(float)和双精度浮点数(double),还有其他,不常用。单精度浮点数使用 4 字节表示;双精度浮点数使用 8 字节表示。...IEEE754 规定,在二进制数中,通过移位,小数点前面的值固定为 1。IEEE754 称这种形式浮点数为规范化浮点数(normal number)。...在 Java 语言中,通过 Float 或 Double 类中常量可以获得:Float.POSITIVE_INFINITY、Float.NEGATIVE_INFINITY。...比如 Go 语言 math 标准库;Java java.lang.Float/Double 等包。

    1.2K41

    格物致知-Floating Point

    但其实浮点背后主要思想并不是那么难, 接下来我们一一揭秘那些困扰着大多数新手疑惑。 IEEE 754二进制浮点表示法。首先,我们描述浮点数是如何表示。...IEEE 754 IEEE 754二进制浮点数表示/标准(后文统一用IEEE代指)。首先, 我们描述一下浮点数应该如何表示。Java使用IEEE标准一个子集来表示浮点数和定义算术运算结果。...通用诊断系统捕获了这个意外溢出,并将调试数据储到用于引导火箭发动机内存区域。控制权被切换到备份计算机上,但这台备机存储了一模一样数据。...以及由图灵奖得主William Kahn共同撰写Java浮点如何做到四处伤害每个人》 问:如何IEEE位表示转换为双精度?...答:要在Java中获取双变量xIEEE 754位表示,请使用Double.doubleToLongBits(x)。

    2.1K20

    php强制转换浮点型到整型出现结果不符合预期

    使用php浮点数int型时,出现转换结果不符合预期,直接转换出现问题在其他强类型语言中可能会有意识去规避,而php能从心所欲,反倒会出现这种细节问题。...$a = 0.58; $b = $a \* 100; $c = intval($b); var\_dump($b);// double(58) var\_dump($c); //...尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致最大相对误差为 1.11e-16。非基本数学运算可能会给出更大误差,并且要考虑到进行复合运算时误差传递。...此外,以十进制能够精确表示有理数如 0.1 或 0.7,无论有多少尾数都不能被内部所使用二进制精确表示,因此不能在不丢失一点点精度情况下转换为二进制格式。...其次可以选浮点数字符串,再将字符串转成int类型。

    1.7K00
    领券