`

java的double转成2进制

 
阅读更多
先说结论:
Double a=360/15660.0;
System.err.println(Long.toBinaryString(Double.doubleToLongBits(a)));


其实就是先转成long 再long转成2进制

起因是这样的:
Double a=360/15660.0;
我java这边看到的结果是:0.022988505747126436
但是前端lua看到的是        0.022988505747126

我直觉就认为前端lua二逼,生生截断了3位
但是前端lua表示不服
确认的方法就是核对二进制,一看二进制是一样的。
所以啊  不要相信看到的东西。
double根本就不是你看到的那个样子。
1
4
分享到:
评论

相关推荐

    Java实现任意进制的转换

    在编程领域,进制转换是一项基础且重要的...以上就是Java实现任意进制转换的方法,包括二进制转十六进制、十进制转任意进制以及36进制加法。理解这些概念和方法,对于理解和编写处理数字系统转换的Java代码至关重要。

    double与8位16进制互转

    double与8位16进制互转,输入double转为8位16进制;输入8位16进制转化为double

    java-16位内存数据转化为double型

    从给定的代码片段来看,这实际上是一段C++代码,而非Java代码,旨在将一个十六进制字符串转换为双精度浮点数(double)。在深入解析这段代码之前,我们首先来了解一下Java中如何实现16位内存数据转化为double型。 #...

    Java程序十进制转二进制,八进制,十六进制

    2. **十进制转八进制**:使用`Integer.toOctalString(int)`方法。例如: ```java int decimalNumber = 10; String octalString = Integer.toOctalString(decimalNumber); System.out.println(octalString); // ...

    十六进制转十进制。java

    对于更复杂的转换,例如十六进制到浮点数或双精度数的转换,Java提供了`Float.parseFloat()`和`Double.parseDouble()`,但它们不直接支持十六进制。在这种情况下,我们通常需要先将十六进制字符串转换为十进制整数,...

    java-16进制4字节转Float

    在Java中,浮点数有两种主要形式:单精度浮点数(float)和双精度浮点数(double),它们分别使用32位和64位来存储。 1. **字节序**:在进行16进制到浮点数的转换时,必须考虑到字节序,即字节在内存中的排列顺序。...

    java基础,进制转换.pdf

    - 进制转换:通过乘以2的幂次方进行进制转换,例如将字节转换为千字节,需乘以2^10。 7. Java数据类型的取值范围 - byte的取值范围是-128到127,占用一个字节。 - short的取值范围更大,是两个字节的大小。 - ...

    Qt中QString、QByteArray、int、double之间转换 - 苦涩的茶 - 博客园1

    2. int或double转QByteArray: 要将数值转换为QByteArray,可以使用`memcpy`函数,它用于将内存区域的内容复制到另一个内存区域。例如: ```cpp QByteArray byte_head, byte_data; memcpy(byte_head.data(), &int_...

    java 各种进制的转换

    2. **十进制转二进制** - `Integer.toBinaryString()`:将十进制整数转换为二进制字符串,例如 `String binary = Integer.toBinaryString(13);` - `Long.toBinaryString()`:处理大整数,如 `String binary = Long...

    Java 小数进制转换,实现任意进制转换为任意进制的方法

    废话不多上干货! /** * 个人数学工具 * * @author Suage */ class Convert { //可用计数字符 private static String unit = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ;... private double actualValue;

    单双精度转十六进制.zip

    首先,需要分离出浮点数的符号位、指数和尾数,然后将指数部分转换为二进制,再转换成对应的正整数,最后将所有部分组合成一个完整的十六进制表示。 例如,对于单精度浮点数,其二进制格式为: 1. 表示符号的1位(0...

    Java Double 精度问题总结

    然而,并不是所有的小数都能被精确地表示为二进制形式,这就导致了一些数值在转换成二进制浮点数时出现了近似值。 2. **运算累积误差**:当进行多次运算时,每次运算后产生的小误差会累积起来,最终可能导致结果与...

    Java程序将八进制转换为十进制.docx

    在Java中,我们可以通过内置的`Integer.parseInt()`方法或自定义算法来将八进制数转换为十进制数。`Integer.parseInt()`方法提供了简洁的解决方案,而自定义算法则为我们提供了更深入的理解,让我们有机会亲手实现...

    单精度&双精度浮点数与十六进制数相互转换

    在实际编程中,大多数编程语言如C++、Java、Python等都提供了内置函数来进行浮点数和十六进制之间的转换。例如,在Python中,可以使用`float.hex()`和`float.fromhex()`方法实现这一过程。 理解这些转换机制对编程...

    基于java实现的二进制、八进制、十进制、十六进制的转换

    例如,将一个二进制字符串转换为八进制,可以先转成十进制,然后再转八进制: ```java String binaryStr = "1010"; int decimal = Integer.parseInt(binaryStr, 2); String octalStr = Integer.toOctalString...

    JAVA转byte[]为int,long,double

    以上就是关于“JAVA转byte[]为int,long,double”的知识讲解,理解这些转换对于处理二进制数据至关重要,尤其是在网络通信、序列化和反序列化等场景中。通过熟练掌握这些转换,你可以更好地处理和解析不同数据类型的...

    test2_JavaDouble类型比较大小_java编程_

    标题"test2_JavaDouble类型比较大小_java编程_"提示我们关注的是Java中`Double`类型的比较操作。通常,我们可能会像处理整数那样直接使用`>`或`来比较两个`Double`值,例如`double a = 0.1; double b = 0.2; if (a +...

    Java实现IEE754 Float类型数据

    double[] data2 = new double[3]; data2[0] = data[0] & 0xff; data2[1] = data[1] & 0xff; data2[2] = data[2] & 0xff; f = (data2[2] - temp * 128 + 128) / 128 + data2[1] / (128 * 256) + data2[0] / ...

    java地址转换经纬度

    在Java开发中,有时我们需要将地址转换为对应的经纬度,这个过程通常被称为地理编码或反向地理编码。这里的需求是处理几百万条地址数据,并且考虑到百度API的收费问题,决定采用自建爬虫的方式进行地址到经纬度的...

    Java Double相加出现的怪事

    Java 中的浮点数类型 float 和 double 在进行运算时会出现不精确的问题,这是因为计算机无法精确地表示十进制小数。这种问题不仅存在于 Java 中,在其它许多编程语言中也存在。 问题的提出: 编译运行下面的 Java ...

Global site tag (gtag.js) - Google Analytics