我在 Python 中有一个包含浮点数的变量(例如num = 24654.123
),我想确定数字的精度和比例值(在 Oracle 意义上),所以 123.45678 应该给我 (8,5),12.76 应该给我(4,2) 等。
我首先考虑使用字符串表示(通过str
or repr
),但是对于大数字来说这些都失败了(尽管我现在明白这是浮点表示的局限性,这就是这里的问题):
>>> num = 1234567890.0987654321
>>> str(num) = 1234567890.1
>>> repr(num) = 1234567890.0987654
编辑:
下面的好点。我应该澄清一下。该数字已经是一个浮点数,并且正在通过 cx_Oracle 推送到数据库。我试图在 Python 中尽我所能来处理对于相应数据库类型来说太大的浮点数,而不是执行 INSERT 和处理 Oracle 错误(因为我想处理字段中的数字,而不是记录,在一次)。我想map(len, repr(num).split('.'))
这是最接近浮点数的精度和规模的吗?