为什么我不能在格式函数中得到十进制数?

时间:2013-12-04 02:17:52

标签: r

format(1234456567.89,decimal.mark=".", big.mark = " ", big.interval = 4L)
[1] "12 3445 6568"

为什么我无法获得12 3445 6567.89的数量? 1.我可以得到一个等于12 3445 6567.89的数字吗? 2.我可以得到一个等于12 3445 6567.89的字符串吗?

问题1的两种方法。 m1:

> format(1234456567.89,digits=12,decimal.mark=".", big.mark = " ", big.interval = 4L,nsmal=2L)->x
> x
[1] "12 3445 6567.89"

m2:

>formatC(1234456567.89, format="f",digits=2, decimal.mark=".", big.mark = " ", big.interval = 4L)->y
y
[1] "12 3445 6567.89"

> format(1234456567.89,digits=12,decimal.mark=".", big.interval = 4L,nsmal=2L)->z
> as.numeric(z)
[1] 1234456567.8900001049

如何将z变为1234456567.89的数字?

2 个答案:

答案 0 :(得分:1)

试试这个 -

format(1234456567.89, digits= 12, decimal.mark=".", big.mark = " ", big.interval = 4L)

答案 1 :(得分:1)

也许尝试一下formatC?

> formatC(1234456567.89, format="f", decimal.mark=".", big.mark = " ", big.interval = 4L)
[1] "12 3445 6567.8900"