zoukankan      html  css  js  c++  java
  • JavaScript调用mysql查询bigint数据精度失真解决方案

    最近我遇上了如题这个问题,后端用node.js写了一个读取mysql数据的接口,之前使用了很久都没发现什么问题,在查询订单表的订单ID时返回的值却是错的

    正确的值是

    19102818002800002

    但是js里返回的值却是 

    19102818002800000

    最后一位不一定是0,但是总是失真,由于订单ID我在后续的多个地方重复使用,导致后面所有用到这个值的地方全是错的。

    发现结果有错以后,层层回溯才终于找到了这个错误源。

    开始时没有想明白是哪里的问题,我尝试将这个数据改短一点后发现返回的值就对了,由此诊断出这里应该是数值过大导致的精度失真

     看了下数据库结构 ID是bigint类型的

    想来想去只能是把这个值查询出来以后立刻赋值成string类型的,不修改接口,直接修改SQL

    select *from order_info
    修改成
    select *,concat(id) ids from order_info
    这里把id查询出来以后 将获取的值赋给 ids 这个变量,返回的josn中 我们只用res_data.ids 替代id就行 
    问题解决
  • 相关阅读:
    elasticsearch客户端连接选择
    logstash5.x配置
    git操作
    Linux的crontab
    让MySQL支持中文
    Python装饰器(decorator)
    Python类的探讨
    Python对象(译)
    Python基础-作用域和命名空间(Scope and Namespace)
    Python输入输出(IO)
  • 原文地址:https://www.cnblogs.com/laowang-tester/p/11882470.html
Copyright © 2011-2022 走看看