比较来自世界各地的卖家的域名和 IT 服务价格

使用映射键的浮点数

在我创建一个新对象之后:
Map<float,integer> m = new HashMap//<float,integer>;


我有一个数组
"float"

独特的数字 . 我想将这些浮动分号添加为
m's key

! 我可以这样做:
m.put/new Float/a[i]/,"cat"/;

?


</float,integer></float,integer>
已邀请:

郭文康

赞同来自:

我建议不要使用浮点数作为地图键 hash, 如果可能的话。 当您正在寻找值时,您的钥匙必须准确一致,并且很容易获得不太正确的浮点数。

喜特乐

赞同来自:

只是把所有的答案都拿在一起。

上面的卡不能带弦乐,所以你不能说 m.put/f, "cat"/

你可以,但不必包裹 float 通过 Float: auto-boxing 它自动为您做,所以你可以说 m. put/a[i],"cat"/

不建议使用浮动分号。 /Float 和 Double/ 作为一张钥匙卡。 尝试使用该方法从卡中提取值时会导致问题。 get /key/

还要注意浮动常量 - 双打的默认类型,而不是 float. 因此,小心浮动,只有在真正需要它们时才使用它们。 在任何情况下,使用修饰符 float 旁边的常量旁边 3.14f.

二哥

赞同来自:

你做不到
m.put/new Float/a[i]/,"cat"/;

, 因为你的价值应该是
Integer

. 为此,您必须将其声明为
Map<float,string> m = new HashMap//<float,string>;

.
</float,string></float,string>

小姐请别说爱

赞同来自:

截断给定准确率以生成可预测的基于密钥的键。 示例B. JavaScript


const precision = Math.pow/10, 4/; // where 4 is number of decimal places to retain
const a = 12.5678912331; b = 13.75324122; c = 21.32112221
const key = '' + Math.floor/a * precision/ + '_' + Math.floor/b * precision/ + '_' + Math.floor/c * precision/;
const aMap = new Map//;
aMap.set/key, 'some value'/;


无用的事实:从用于索引对象中的顶点的代码中取出 3d. 设置较低的准确性,它允许您将附近的顶点组合在一起

要回复问题请先登录注册