将十进制转换为其他进制

4

我正在寻找一种在R中将十进制转换为其他进制的方法。来自oro.dicom包的dec2base函数仅适用于整数(如其帮助文件所述):

> dec2base(1.559,9)
[1] "1"

如果以9为底的1.559应该是1.5024,我想知道是否还有其他方法。

2个回答

1

Rmpfr 包可以进行任意精度的算术运算和进制转换:

library(Rmpfr)
x <- mpfr(1.559, precBits = 64, base = 10)  ## base = 10 is default
b9 <- as.numeric(format(x, base = 9))
print(b9)
## 1.502453

0

我认为您可以将数字乘以非零小数位数,然后在 dec2base 命令的后端撤销操作。


如果我正确理解了你的建议,并且以1.559为例,那么就是乘以1000,所以 > dec2base(1559,9) [1] "2122" 然后在基数9中除以1000?因此2122/1331,得到1.59429。 - ALB
我认为你正在将最终的数字除以10进制。那是不正确的。 - ojblass
哦,我意识到我的错误了,谢谢。我是在十进制而不是九进制下进行除法运算。 - ALB
对不起,您知道在R中以其他进制进行除法的方法吗? - ALB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接