R-as.character返回的字符比实际返回的字符多

R-as.character返回的字符比实际返回的字符多,r,rounding,precision,R,Rounding,Precision,在某些数值上使用as.character()时,我遇到了一个有趣的行为 假设我有这个向量: test <- seq(-1.5,1,0.02) 所以有些值会得到额外的数字,我不希望有 我知道这是因为数字是如何存储在R中的,但我仍然希望有一个字符串向量,它对应于我在第一个向量中的数字(为了访问矩阵中的某些行和列,我需要名称相同) 取而代之 as.character(round(test,digits=2)) 解决了我的问题,但我不能完全肯定它是万无一失的。有人有什么建议吗?还是我忽略了什么

在某些数值上使用as.character()时,我遇到了一个有趣的行为

假设我有这个向量:

test <- seq(-1.5,1,0.02)
所以有些值会得到额外的数字,我不希望有

我知道这是因为数字是如何存储在R中的,但我仍然希望有一个字符串向量,它对应于我在第一个向量中的数字(为了访问矩阵中的某些行和列,我需要名称相同)

取而代之

as.character(round(test,digits=2))
解决了我的问题,但我不能完全肯定它是万无一失的。有人有什么建议吗?还是我忽略了什么


谢谢

尝试
print(seq(-1.5,1,0.02),digits=22)
-它们并不有趣,而且它们实际上存在。对于字符类的1对1转换,我们可以使用
format(test)
mtoto
trimws(format(test))
来解释额外的空格疯狂建议:不要使用浮点数作为名称。@DavidArenburg在您给出的示例中,它们几乎都有浮点,但只有少数是通过as.character显示的。角色如何选择?这似乎不是因为四舍五入,因为这样会出现更多具有“更大”浮点值的情况。
as.character(round(test,digits=2))