姣姣酱 2019-10-29 17:37 采纳率: 0%
浏览 2725
已采纳

从后端接数据,number类型的数据,后面的无效0被自动舍掉了

后端接口返回的数据

{"code":0,"msg":"","data":{"invoiceOfElectronic":false,"invoiceUrl":"","ticketTime":1571736864000,"goodsDetails":[{"goodsName":"德力西电气 漏电塑壳断路器;DZ15LE-40T/4901  32A 30mA 透明","buyNo":"DZ15LE40T324S","model":"DZ15LE-40T/490","unit":"个","orderNum":1,"salesPrice":161.710000,"salesAmount":161.710000,"taxRate":13.00,"taxAmount":18.600000},{"goodsName":"WN-虚拟品2-0825","buyNo":"","model":"","unit":"副","orderNum":1,"salesPrice":15.000000,"salesAmount":15.000000,"taxRate":2.30,"taxAmount":0.340000}],"goodsSalesAmountCount":176.710000,"goodsTaxAmountCount":18.940000},"ticket":null,"weexVs":null}

看,数据后面是有0的,比如"goodsTaxAmountCount":18.940000,这个字段值是number类型,但是,我前端接的时候,自动舍掉了后面无效的0
图片说明

为什么前端接的时候会把后面的0丢掉,并且怎么才能不丢失的接到后端传过来的数据

  • 写回答

4条回答 默认 最新

  • 吕布的僚机 2021-02-25 17:17
    关注

    我最近也遇到这个问题了,13.00会被格式化为13。是因为axios中的默认transformReponse使用了JSON.parse。JSON.parse会舍去小点后的0。

    axios源码node_modules/_axios@0.21.1@axios/lib/defaults.js

    transformResponse: [function transformResponse(data) {
        /*eslint no-param-reassign:0*/
        if (typeof data === 'string') {
          try {
            data = JSON.parse(data);
          } catch (e) { /* Ignore */ }
        }
        return data;
      }],

    只能是后端把浮点数转成字符串传给前端,或者前端特殊处理加上小数显示。没有别的好办法.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 2月6日

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?