我们有一个类,其中有 1float[]和 1 int[]。有时该类的用户需要输入 float 值,有时需要输入 int 值,但不会为每个实例都输入两者。
我们知道所有可能的 float 和 int 值都不会很大(小于 100000)。我想我们可能不需要int[],只需float[]在必要时使用 来保存 int 值。当我们使用它们的时候,我们可以在必要的时候将它们转换为int。一个存储阵列就一目了然了。
你觉得我的想法怎么样?将 int 放入 float[] 不会丢失任何东西。我是对的?
编辑:
一个类有一个float[]类变量和一个int[]为用户保存值的类变量。它的用户将使用 float[] 或 int[],但不能同时使用两者。所以我们有 get float[] 和 set float[] 方法,还有 get int[] 和 set int[] 方法,以及不同的构造函数。我正在考虑通过删除 int[] 类变量并为不同用户的 int 值和 float 值使用 float[] 来简化此类。
float具有 24 位精度(和一个符号位),这意味着您可以存储int-16777216 到 16777216 之间的值,而不会损失精度。
如果您的所有值都是偶数或 10 或 100 的倍数,您可以安全地存储更大的值。重要的是,你的数字除以 2 的所有幂后必须在该范围内。
为了结合int,float我会使用double它可以容纳所有可能的浮点和整数值。这消耗的额外内存不太可能很大。(除非你有数百万个)
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |