在YAML哈希中与Ruby一起使用浮点数安全吗?

在YAML哈希中与Ruby一起使用浮点数安全吗?,ruby,hash,yaml,floating-accuracy,Ruby,Hash,Yaml,Floating Accuracy,如果我有像这样的YAML文件 --- 2.1: my product version 如果没有任何引号,Ruby将把2.1视为一个浮点(至少在Syck下-我不确定Psych) 使用浮点数作为散列的键是否有风险,只要该键的所有其他出现都来自YAML文件或Ruby的文本?版本“数字”实际上不是浮点数,甚至不是任何类型的数字,它更像是以特殊方式编写的整数序列([2,1,11])(2.1.11)。因此问题背后的问题是没有意义的:)@muistooshort:我的问题是我是否可以懒惰,不使用引号来逃避

如果我有像这样的YAML文件

--- 
2.1: my product version
如果没有任何引号,Ruby将把
2.1
视为一个浮点(至少在Syck下-我不确定Psych)


使用浮点数作为散列的键是否有风险,只要该键的所有其他出现都来自YAML文件或Ruby的文本?

版本“数字”实际上不是浮点数,甚至不是任何类型的数字,它更像是以特殊方式编写的整数序列(
[2,1,11]
)(
2.1.11
)。因此问题背后的问题是没有意义的:)@muistooshort:我的问题是我是否可以懒惰,不使用引号来逃避它。我没有用
Hash
尝试过它,但它会导致
RBTree
出现问题(至少在Psych方面):
@9.884112959068247e-09”不允许作为实例变量名
版本“number”实际上不是浮点数,甚至不是任何类型的数字,它更像是以特殊方式写入的整数序列(
[2,1,11]
)。因此,这个问题背后的问题是没有意义的:)@muistooshort:我的问题是我是否可以懒惰,不使用引号来转义它。我没有用
散列
,但它会导致
RBTree
(至少是Psych)出现问题:
“@9.884112959068247e-09”不允许作为实例变量名