相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

保留大量数字

我正在尝试读取第一列中包含条形码的CSV文件,但是当R将其转换为data.frame时,它将转换16655350046611.67E+12.

有没有办法以整数格式保存这个数字?我尝试分配一类"double",但是没有用,也没有分配一类"character".一旦它处于1.67E+12格式,任何将其转换回整数的尝试都会返回167000000000.

csv precision import r numeric

12
推荐指数
5
解决办法
2万
查看次数

50 次迭代后,常数“pi”的近似值没有任何改善

在RI已经写了这个函数

ifun <- function(m)  {
  o = c() 
  for (k in 1:m) {
    o[k] = prod(1:k) / prod(2 * (1:k) + 1)
    }
  o_sum = 2 * (1 + sum(o))  # Final result

  print(o_sum)
}
Run Code Online (Sandbox Code Playgroud)

这个函数逼近 constant pi,但是,在m > 50逼近被卡住之后,即逼近是相同的值并且不会变得更好。我怎样才能解决这个问题?谢谢。

pi r approximation

1
推荐指数
1
解决办法
133
查看次数

如何在R中精确读取大数并对它们进行算术运算?

我正在读一个csv文件,其中包含一些非常大的数字,如1327707999760,但是R会自动将其转换为1.32771e + 12.我试图给它分配一个双类,但它不起作用,因为它已经是一个舍入值.我查过了保存大数字等其他帖子.人们说"它不是"1.67E + 12格式",它只是不会完全使用默认值打印.R正好读它,整个数字就在那里." 但是当我试图对它们做一些算术运算时,这是不对的.例如:

test[1,8]
[1] 1.32681e+12
test[2,8]
[1] 1.32681e+12
test[2,8]-test[1,8]
[1] 0
Run Code Online (Sandbox Code Playgroud)

但我知道他们是不同的数字!

r

0
推荐指数
1
解决办法
1093
查看次数