我将R中的两个数字分开。分子是一个大整数(以百万为单位的范围)除以13.00001 将13.000001作为13,输出仅限于1位小数。 我要求输出增加2位小数,这是没有发生的。 我尝试了圆形,格式和as.numeric,但它没有结果 圆形不给任何东西(圆形(divison,1) format(nsmall = 2)使其达到2位小数,但将其转换为字符 as.numeric从字符重新转换它,但是2位小数位被1位小数替换 当我用13.000001之类的数字除以整数时,有什么方法可以得到2位小数?
答案 0 :(得分:4)
注意不要将输出与内部精度混淆:
x <- 13e7/13.000001
sprintf("%10.20f",x)
#[1] "9999999.23076928965747356415"
sprintf("%10.10f",x*13)
#[1] "129999990.0000007600"
sprintf("%10.10f",x*13.000001)
#[1] "129999999.9999999851"
与预期输出的差异是由于floating point precision有限。