Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的Postgresql数字类型显示_Python_Postgresql - Fatal编程技术网

python中的Postgresql数字类型显示

python中的Postgresql数字类型显示,python,postgresql,Python,Postgresql,我有一个postgresql表,其列定义为:numeric(20,7) 如果插入值0,则将其保存为:0.0000000 当我将这个值赋给Python(2.7)时,它会显示0E-7,这是正确的,但格式错误 为什么会这样表现呢?如何修复它?如果您想控制浮点数的格式,可以尝试: "{0:.2f}".format(n) # n is value read from db 只需将文件传递到以下位置,即可格式化文件: "{:f}".format(Decimal("0E-7")) Decimal支持: 默

我有一个postgresql表,其列定义为:
numeric(20,7)
如果插入值
0
,则将其保存为:
0.0000000

当我将这个值赋给Python(2.7)时,它会显示
0E-7
,这是正确的,但格式错误


为什么会这样表现呢?如何修复它?

如果您想控制浮点数的格式,可以尝试:

"{0:.2f}".format(n) # n is value read from db
只需将文件传递到以下位置,即可格式化文件:

"{:f}".format(Decimal("0E-7"))
Decimal
支持:

默认情况下,它似乎使用
十进制本身的精度:

>>> '{:f}'.format(Decimal('0E-7'))
'0.0000000'
>>> '{:f}'.format(Decimal('0E-8'))
'0.00000000'
>>> '{:f}'.format(Decimal('0E-9'))
'0.000000000'
另一方面,如果要使用自定义精度,请以格式字符串传递:

>>> print("{:.2f}".format(Decimal("0E-7")))
0.00

有关格式中不同字母的含义的解释,请参阅。

您能解释一下语法吗?为什么是.2?@java
.f
设置浮点的精度。我认为巴勃罗任意选择了2分。
>>> print("{:.2f}".format(Decimal("0E-7")))
0.00