2012-08-02 66 views
0

加载一个yaml文件时,例如25.0,.0被忽略,我得到的是25.是否有可能强制yaml认为该值没有被操纵数据?我试图用单引号或双引号括起这些值,但这不起作用。YAML忽略像`X.0`这样的十进制值

[编辑]:我使用yaml解析器包进行R编程语言。返回的数据类型是double。如果我将该值设置为25.2,则返回相同的值。我该如何强制YAML/R读取YAML中的信息。

+0

哪种语言解析器您使用的?解析器返回的数据类型是什么?根据语言(例如JavaScript)和数据类型,它可能是语言“功能”。 – 2012-08-02 20:59:15

+0

@TorstenWalter:添加了超过 – 2012-08-02 21:03:22

+0

的信息从技术上讲,解析器不会忽略'.0'值。当小数点后面没有有意义的值时,它最有可能是修剪浮点数的语言功能。我不知道R,所以我不能100%肯定地回答这个问题。 – 2012-08-02 21:17:04

回答

1

您的问题是解析器认识到这些是浮点数和在ř有25.0和25之间没有差别尝试此例如:

identical(25.0, 25)

25.0和25只是两个不同repre同一个浮点数的发送。如果您想保留提供数据的表单,则必须以字符串的形式读取它们(如果需要执行计算,您可以稍后将其转换为数字)。你可以用一个处理程序做到这一点:

yaml.load("25.0", handlers=list("float#fix"=function(x) as.character(x)))