计算 R 中两个数字的小数点后一致的位数



我希望 R 计算两个数字之间相同的位数,并返回小数点后相同的位数。例如:

a <- 0.1234567890
b <- 0.1234567891

输出:

9

9 位数字相同。

谢谢!

floor(-log10(abs(a-b)))怎么样?

请注意,任何这样的计算总是存在浮点错误问题的风险 - 请参阅下面 John Paul 指出的示例。

这是另一个(基于字符串的)答案,不应该受到任何浮点比较问题的困扰......

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

这将比较长度为 1 到 20 的所有b(强制字符)的初始子字符串(您可以扩展它),确定它们是否包含在a中,返回匹配数(即包含在a中的最长子字符串的长度b)并减去 2 以允许初始0.

相关内容

  • 没有找到相关文章

最新更新