相关疑难解决方法(0)

Python浮点任意精度可用吗?

只是为了好玩,因为它非常简单,我编写了一个简短的程序来生成嫁接数,但由于浮点精度问题,它没有找到一些更大的例子.

def isGrafting(a):
  for i in xrange(1, int(ceil(log10(a))) + 2):
    if a == floor((sqrt(a) * 10**(i-1)) % 10**int(ceil(log10(a)))):
      return 1

a = 0
while(1):
  if (isGrafting(a)):
    print "%d %.15f" % (a, sqrt(a))
  a += 1
Run Code Online (Sandbox Code Playgroud)

此代码缺少至少一个已知的嫁接编号.9999999998 => 99999.99998999999999949999999994999999999374999999912... 它乘以后似乎会降低额外的精度10**5.

>>> a = 9999999998
>>> sqrt(a)
99999.99999
>>> a == floor((sqrt(a) * 10**(5)) % 10**int(ceil(log10(a))))
False
>>> floor((sqrt(a) * 10**(5)) % 10**int(ceil(log10(a))))
9999999999.0
>>> print "%.15f" % sqrt(a)
99999.999989999996615
>>> print "%.15f" % (sqrt(a) * 10**5) …
Run Code Online (Sandbox Code Playgroud)

python floating-point floating-accuracy

42
推荐指数
4
解决办法
5万
查看次数

如何将Python十进制转换为SQLite数字?

我有一个程序,它以JSON格式读取财务数据并将其插入到SQLite数据库中.问题是当我将它插入SQLite数字列时,它似乎不喜欢小数对象.

我之前发现这个问题已得到解答,但答案已经过时,据我所知,SQLite现在有一种名为numeric的货币数据类型.

现在作为一种解决方法我将十进制值存储为文本,但是可以将其存储为数字吗?我是否坚持将小数转换为字符串的开销,反之亦然,以便进行数据库插入和财务计算?

python sqlite numeric decimal

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