【发布时间】:2011-03-02 10:01:14
【问题描述】:
我在 Python 中有一个包含浮点数的变量(例如 num = 24654.123),我想确定数字的精度和比例值(在 Oracle 意义上),所以 123.45678 应该给我 (8,5 ), 12.76 应该给我 (4,2) 等等。
我最初考虑使用字符串表示(通过str 或repr),但是对于大数字来说这些都失败了(尽管我现在明白这是浮点表示的限制,这就是这里的问题):
>>> num = 1234567890.0987654321
>>> str(num) = 1234567890.1
>>> repr(num) = 1234567890.0987654
编辑:
下面的好点。我应该澄清一下。该数字已经是一个浮点数,并且正在通过 cx_Oracle 推送到数据库。我正在尽我所能在 Python 中处理对于相应的数据库类型来说太大的浮点数,而不是执行 INSERT 和处理 Oracle 错误(因为我想处理字段中的数字,而不是记录,在一次)。我猜map(len, repr(num).split('.')) 是最接近浮点数的精度和比例的?
【问题讨论】:
标签: python string floating-point scale precision