2012-08-02 77 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)))