在Java中有没有办法*直接*将浮点转换为整数

在Java中有没有办法*直接*将浮点转换为整数,java,math,Java,Math,为了利用一些低级数学函数近似技巧,我想直接将浮点的四个字节转换为整数。请注意,这与常规Java强制转换不同,我知道这将不是相同的数字。我只想将这四个字节解释为一个整数,而不是浮点。有办法做到这一点吗?是: 但是请注意,这将返回一个在MSB中读取的整数,这是Java对所有整数原语类型所做的;浮点基元类型使用base 2 IEEE 754,就像绝大多数现有的计算机编程语言一样。如果你想要LSB,你必须通过一个ByteBuffer和;默认情况下为big-endian 请注意,还有一个问题。当然,虽然D

为了利用一些低级数学函数近似技巧,我想直接将浮点的四个字节转换为整数。请注意,这与常规Java强制转换不同,我知道这将不是相同的数字。我只想将这四个字节解释为一个整数,而不是浮点。有办法做到这一点吗?

是:

但是请注意,这将返回一个在MSB中读取的整数,这是Java对所有整数原语类型所做的;浮点基元类型使用base 2 IEEE 754,就像绝大多数现有的计算机编程语言一样。如果你想要LSB,你必须通过一个ByteBuffer和;默认情况下为big-endian

请注意,还有一个问题。当然,虽然Double类使用long,但它们具有等效的方法。

您在寻找floatToIntBitsfloat值吗

返回指定浮点值的表示形式 根据IEEE 754浮点单格式位布局


然后您可以根据需要操作位。

使用ByteBuffer方法putFloat和getInt-

比如把12.90转换成?或者12.45到?这也可以,但是在读回之前,您需要操纵偏移量@fge是的,这是真的,我只是想提供一个提示如何解决问题或从哪里开始,当提问者自己根据提示撰写解决方案时,总比复制粘贴整个提供的解决方案而不真正理解它的作用要好。