我应该使用十进制类型作为字典中的键吗?

hel*_*ker 5 .net c# dictionary key decimal

我即将创建一个字典,其中每个值都有一个数字键,通过实验计算得到.

我知道double并且任何其他浮点类型都不适合用作键,因为很难比较关于唯一性或相等性的两个浮点数.

有谁知道Decimal这个方面是否是一个好的候选人?另一种方法是将double转换为具有给定精度的字符串,但这听起来像是一个不优雅的解决方法.

Ale*_*kov 6

在词典中使用floatdecimal作为键之间没有太大区别.两者都用指数表示数字 - 所以两者都在不同规模上遭受相同的比较问题.

如果你需要逐位相等的话,对于Dictionary要么是正确的,如果你需要为"大约相同的值"键,你需要使它成为自定义键,它会以某种已知的方式对值进行舍入,以便将相似的结果放在同一个桶中. ..