将浮点型转换为短型,而精度损失最小

用户名

我有这个正弦波,它生成浮点值(例如0.37885),但我希望它们是短裤。直接用short强制转换的值为0。那么解决方案是什么?

谁能告诉我该怎么做-理想情况下不会损失精度-或如果可能的话,将精度损失降至最低?

乔普·艾根(Joop Eggen)
public static short floatToShort(float x) {
    if (x < Short.MIN_VALUE) {
        return Short.MIN_VALUE;
    }
    if (x > Short.MAX_VALUE) {
        return Short.MAX_VALUE;
    }
    return (short) Math.round(x);
}

您将失去小数部分:

float    4 byte floating-point
double   8 byte floating-point (normal)
short    2 byte integer
int      4 byte integer (normal)
long     8 byte integer

编辑:

也许您想知道如何将float的位(4个字节)保存为int(4个字节):(http://docs.oracle.com/javase/7/docs/api/java/lang/Float。 html#floatToRawIntBits(float)

float x = 0.1f;
int n = Float.floatToRawIntBits(x);
float y = Float.intBitsToFloat(n);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将 pandas str 列转换为浮点而不损失精度

将浮点型转换为整数

将字节类型转换为浮点型

Swift-将数组中的值转换为双精度或浮点型

使用转换函数将列值转换为浮点型

将浮点数转换为两倍而不损失精度

将浮点数转换为R中的字符串而不会损失精度

如何在不损失R精度的情况下将因子转换为浮点数?

在不损失精度的情况下将 NumPy 浮点数转换为整数

如何将16位PCM音频字节数组转换为双精度或浮点型数组?

无法将字符串转换为浮点型

将字典的值从列表转换为浮点型

将浮点型数组转换为Java中的短裤数组

ValueError:无法将字符串转换为浮点型。

Java:将双精度型转换为字符串

将字符串转换为if子句的双精度型

将单精度浮点转换为半精度浮点

错误:类型不兼容:可能从双精度转换为浮点型

将浮点向量转换为双精度

获得(非零)双精度或浮点型的最小步长

从浮点数到双精度并重新转换为浮点数的转换而不会损失精度

转换输入时出现“ ValueError:无法将字符串转换为浮点型”

如何以最小的损失将MKV转换为AVI

sklearn OneHotEncoder损坏-ValueError:无法将字符串转换为浮点型

Sklearn管道ValueError:无法将字符串转换为浮点型

将字符串(csv)的子列表转换为浮点型(列表理解)

sympy TypeError:无法将表达式转换为浮点型

ValueError:无法将字符串转换为浮点型:left_column_pixel

ValueError:无法将字符串转换为浮点型-没有位置指示