正数的固定和小数位

问题描述 投票:0回答:1

我想编写一个函数,用于计算每个正数的固定位数和小数位数。对于整数:例如,对于数字459,我希望看到

fixed=3 and decimal=0

作为函数的输出。对于十进制数字:例如,对于数字12.657,我想查看

fixed=2 and decimal=3

(因为12有两个数字,而657有三个数字)。对于小于1的数字,我希望看到

0 

作为固定值,例如我希望看到的数字0.4056

fixed=0 and decimal=4 

或我希望看到的数字0.13

fixed=0 and decimal=2

我的一般想法如下:

digits<-function(x){
  length(strsplit(as.character(x),split="")[[1]])
}

我想将我的代码扩展为一个新的代码,以便如上所述工作。

r decimal fixed digits
1个回答
0
投票

我认为无法做到这一点。我们不能假设一个简单的数值可以在计算机中准确地表示出来。大多数浮点值当然不能。

在R控制台输入0.3:

> 0.3
[1] 0.3

看起来不错,不是吗?但是现在,让我们这样做:

> print(0.3, digits=22)
[1] 0.29999999999999999

本质上,如果将浮点数转换为字符串you定义所需精度。计算机无法给您这种精度,因为它以位存储所有数字,因此永远不会给您绝对精度。

© www.soinside.com 2019 - 2024. All rights reserved.