Postgresql中的Decimal值在Node.js中以Stringforms返回
当我在node.js服务器上对postgresql数据库运行查询时,我得到的值是variablestypesstring ,实际上它是postgresql数据库中的一个十进制数 。
我不知道为什么我的小数或甚至bigInts返回typesstring。 我使用knex作为我的ORM,如果这有所作为。 到目前为止,我在网上阅读的是不是很清楚该怎么做,似乎这自动发生,以保持精度?
什么是最好的解决这个? 是最好把我的查询返回的stringvariables转换为十进制使用parseFloat?
decimal
和bigint
types都可能包含的值太大bigint
适合JavaScript的Number
:
-
Number.MAX_SAFE_INTEGER
(JS):9007199254740991 -
bigint
: -9223372036854775808到9223372036854775807 -
decimal
: 小数点前最多131072位; 小数点后最多16383位
如果您确定数据库中的值适合于Number
,则可以将它们转换(我不知道Knex,但可能有一些钩子系统可用于转换从数据库中检索的数据数据库),或者更改数据库模式以包含“较小”的行types。
另外,也可以使用Node的各种“大整数”包。