相关疑难解决方法(0)

在哪里可以找到Java的Square Root函数的源代码?

我知道Math.sqrt调用StrictMath.sqrt(double a)我想查看用于计算它的实际代码.

java math.sqrt

18
推荐指数
3
解决办法
2万
查看次数

JVM/CLR上相同字节的不同浮点值

我正在将最初用VB.NET编写的程序移植到Java.我正在读取一个以小端序存储32位浮点数的文件.

原始程序执行此操作:

Dim br As BinaryReader = ...
Dim f_vb As Single = br.ReadSingle
Run Code Online (Sandbox Code Playgroud)

Java是大端,所以我在转换为float之前反转字节.

RandomAccessFile raf = // ...
int i = raf.readInt();
int bigEndian = Integer.reverseBytes(i);
float f_java = Float.intBitsToFloat(bigEndian);
Run Code Online (Sandbox Code Playgroud)

据我所知,f_vbf_java包含相同的位.也就是说,BitConverter.ToInt32on f_vbFloat.floatToIntBits(和floatToRawIntBits)on f_java给出相同的东西.但是,花车并不相同.例如,让我们bigEndian == 0x4969F52F.Java将报告958290.94,VB.NET将报告958290.938.我猜这是因为JVM和CLR处理浮点数的方式有所不同,但我对浮点问题知之甚少以找出原因.这种精度的损失导致了线路故障,所以我想确定来源.

java vb.net floating-point clr jvm

1
推荐指数
1
解决办法
161
查看次数

标签 统计

java ×2

clr ×1

floating-point ×1

jvm ×1

math.sqrt ×1

vb.net ×1