簡體   English   中英

計算R中兩個數字的小數點后同意的位數

[英]calculate how many digits that agree after decimal point of two numbers in R

我希望R計算兩個數字之間相同的位數,並返回小數點后相同的位數。 例如:

a <- 0.1234567890
b <- 0.1234567891

輸出:

9

9位數是相同的。

謝謝!

floor(-log10(abs(ab)))怎么樣?

請注意,任何這樣的計算都存在風險,浮點錯誤可能存在問題 - 請參閱John Paul在下面指出的示例。

這是另一個(基於字符串的)答案,不應該遇到任何浮點比較問題......

sum(sapply(1:20,function(i) grepl(substr(b,1,i),a)))-2

這比較了長度為1到20的b (強制到字符)的所有初始子串(你可以擴展它),確定它們是否包含在a ,返回匹配的數量(即包含在ab的最長子串的長度) )並減去2以允許初始0.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM