繁体   English   中英

R 双倍和系统添加的小数

[英]R Doubles and System-Added Decimals

我有以下从电子表格中的数据导入的双向量。 数据代表会计价值。

> amts 
[1]        0.00    2616.79    3908.20       0.00       0.00       0.00      50.25     600.54    2104.29       0.00     800.13     837.08
[13]     588.85     550.57     435.07       0.00    4000.00    5000.00   10000.00  120000.00  266000.00       0.00   16089.71       0.00
[25]   11202.35   21594.32   10238.44       0.00    5500.10       0.01       0.00     296.67     313.79    -430.42     -42.02     -11.99
[37]      -0.20       0.00       0.00       0.00       0.00       0.00   -3519.57   -3323.94   -6815.91   -4540.39  -35268.87  -29260.34
[49]  -26896.01       0.00  -22384.00  -49929.73  -27860.94   -4055.22  -21776.87   -8671.80       0.00    1366.38  -85548.01 -208958.93
[61]   55201.62
> typeof(amts)
[1] "double"

当我 go 将它们加在一起时,该值返回的小数位数超出了所需的位数。 就像 R 正在添加不存在的小数。

> sum(amts)
[1] 1.327294e-11

奇怪的是,当我将向量分块求和时,行为并不相同。

> (x <- sum(amts[1:30]))
[1] 482116.7
> (y <- sum(amts[31:61]))
[1] -482116.7
> x + y
[1] 0

我很想了解这种行为以及 R 在 sum() function 期间如何/为什么在应用 ZC1C425268E68385D1AB5074C17A94F 之前似乎不存在的小数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM