2013-06-06 50 views
3

我希望得到一個樣品中所有不同的浮點值:獲取R中花車的精確值?

unique(c(0.100000000002, 0.100000000003)) 

但這僅返回哪些不是唯一值的兩倍0.1

[1] 0.1 0.1 

我如何可以列出確切值得救了嗎?

回答

5

這只是R的7個有效數字的默認打印限制。要看到真實的基本價值:

print(unique(c(0.100000000002, 0.100000000003), digits=15) 

要更改默認行爲,請參閱?options;你想要的東西像options(digits=15)

5

使用sprintf ...

x <- unique(c(0.100000000002, 0.100000000003)) 
sprintf("%.20f", x) 
#[1] "0.10000000000200000294" "0.10000000000299999470" 

help pagesprintf ...

˚F
雙精度值,在「定點」的 形式的十進制表示「[ - ] mmm.ddd」。小數位數(「d」)由 指定精度:默認值爲6;精度爲0時會抑制小數點的位置。非有限值被轉換爲NA,NaN或(可能是符號後跟Inf)。

2

在這裏你去

options(digits=14) 
    unique(c(0.100000000002, 0.100000000003)) 
+1

這是一樣的@HongOoi的答案,因此重複的信息。 –

+1

是的。對不起。在發佈之前我沒有閱讀他的回答。 – Avinash