spring boot的小数位丢失.00 或者.0
1、背景
在使用spring boot时,前端的界面展示的数据是2 ,在数据库中存储的是小数。但是导出Excel的时候数据是 2.00 。奇了怪了为啥会不一样,数据都是一样的没有做过处理。
2、排查问题
经过层层的debug 发现数据库返回的数据是2.00,写入Excel的数据就是查询数据库原始的数据。
List<Map<String, Object>> data = jdbcTemplate.queryForObject(sql);
前端界面的接口调用同样的方法,查询的SQL返回的值data是一样的,但是在浏览器F12模式下看接口返回的值是2。并没有.00 ,说明spring boot在返回JSON数据的时候动了手脚。
3、解决方法
方法1:
如果前端对数据的格式不敏感,建议全部修改为字符串返回
spring:jackson:## 日期格式(可根据自己的需求修改格式)date-format: yyyy-MM-dd HH:mm:ss generator:## 将数值类型转换为字符串,解决long型精度丢失write_numbers_as_strings: true
方法2:
数据库返回的数据
| 数据库返回(Java类型) | 类型 | 小数位 | 默认添加 |
Double | 1.00 | 2位 | |
BigDecimal | 1.0 | 1位 |
手动对返回的小数,进行转化,转换为字符串,再替换掉结尾的.00或者.0
rowValue = (number instanceof Double && number != null && number.toString().endsWith(".0")) ? rowValue.replace(".0", "") :rowValue;
rowValue = (number instanceof BigDecimal && number != null && number.toString().endsWith(".00")) ? rowValue.replace(".00", "") :rowValue;
rowValue = (number instanceof Double && number != null && number.toString().endsWith(".000")) ? rowValue.replace(".000", "") :rowValue;
相关文章:
spring boot的小数位丢失.00 或者.0
1、背景 在使用spring boot时,前端的界面展示的数据是2 ,在数据库中存储的是小数。但是导出Excel的时候数据是 2.00 。奇了怪了为啥会不一样,数据都是一样的没有做过处理。 2、排查问题 经过层层的debug 发现数据库返回的数据是2.00&#x…...
nginx如何清理页面缓存
在 Nginx 中,清理页面缓存通常涉及配置缓存头以控制缓存行为,或者使用外部工具或机制来清除缓存。以下是一些建议来管理和清理 Nginx 的页面缓存: 配置缓存头: Nginx 本身不直接提供缓存机制,但可以通过配置 proxy_cac…...
深度学习pytorch——经典卷积网络之ResNet(持续更新)
错误率前五的神经网络(图-1): 图-1 可以很直观的看到,随着层数的增加Error也在逐渐降低,因此深度是非常重要的,但是学习更好的网络模型和堆叠层数一样简单吗?通过实现表明(图-2&…...
react 面试题(2024 最新版)
1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架,它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…...
JVM(三)——字节码技术
三、字节码技术 1、类文件结构 一个简单的 HelloWorld.java package com.mysite.jvm.t5; // HelloWorld 示例 public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }执行 javac -parameters -d . HellowWorld.…...
HarmonyOS 应用开发之Stage模型绑定FA模型ServiceAbility
本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility组件。 UIAbility关联访问ServiceAbility UIAbility关联访问ServiceAbility和UIAbility关联访问ServiceExtensionAbility的方式完全相同。 import common from ohos.app.ability.common; import hilog from o…...
高效解决Visual Studio无法识别到自定义头文件
文章目录 问题解决方案 问题 说明你没有好好配置项目属性 解决方案 把头文件都集中存放到一个文件夹里 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路…...
[数据集][目标检测]道路行人车辆坑洞锥形桶检测数据集VOC+YOLO格式6275张4类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6275 标注数量(xml文件个数):6275 标注数量(txt文件个数):6275 标注…...
风险与收益
风险与收益 影响资产需求的主要因素财富总量预期收益率资产的流动性影响流动性的主要因素 风险 如何降低风险系统风险和非系统风险机会集合与有效集合资产组合理论 影响资产需求的主要因素 影响资产需求的主要因素包括:财富总量、预期收益率、资产的流动性和风险。…...
linux服务器安装mysql8
1.下载MYSQL 近几天在linux服务器已安装过2次mysql8,亲测有效,没有遇到任何问题,文档已写的很清楚,按步骤来即可。如果按文档有遇到要使用yum命令的话,需要服务器开通外网。 1.1官网下载 进入官网下拉到最后&#x…...
亚信安全荣获2023年度5G创新应用评优活动两项大奖
近日,“关于2023 年度5G 创新应用评优活动评选结果”正式公布,亚信安全凭借在5G安全领域的深厚积累和创新实践,成功荣获“5G技术创新的优秀代表”和“5G应用创新的杰出实践”两项大奖。 面向异构安全能力的5G安全自动化响应系统 作为5G技术创…...
linux之忘记root密码
一,开机到如下地方按下e进入紧急模式 然后再如下位置输入init/bin/bash 然后Ctrlx 二, 修改密码 以上操作分别为 1),重新挂载根目录 mount -o remount,rw / 2),修改密码 passwd root 3)&a…...
jspm智能仓储系统
开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclip…...
深入理解数据结构(3):栈和队列详解
文章主题:顺序表和链表详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页&#x…...
单例设计模式(3)
单例模式(3) 实现集群环境下的分布式单例类 如何理解单例模式中的唯一性? 单例模式创建的对象是进程唯一的。以springboot应用程序为例,他是一个进程,可能包含多个线程,单例代表在这个进程的某个类是唯一…...
将jupyter notebook文件导出为pdf(简单有效)
1.打开jupyter notebook笔记: 2.点击file->print Preview 3.在新打开的页面右键打印 4.另存为PDF 5.保存即可 6.pdf效果 (可能有少部分图片显示不了) 网上也有其他方法,比如将其转换为.tex再转为PDF等,但个人觉…...
使用INSERT INTO ... ON DUPLICATE KEY UPDATE批量插入更新导入excel数据的实践场景应用
INSERT INTO ... ON DUPLICATE KEY UPDATE 是 MySQL 中的一个非常有用的语法,它允许你在插入新记录时,如果记录的唯一键(如主键或唯一索引)已存在,则执行更新操作而不是插入。这可以帮助你避免在插入数据时产生的重复键…...
AJAX-项目优化(目录、基地址、token、请求拦截器)
目录管理 基地址存储 在utils/request.js配置axios请求基地址 作用:提取公共前缀地址,配置后axios请求时都会baseURLurl 填写API的公共前缀后,将js文件导入到html文件中 <script src"../../utils/request.js"></script&…...
SQLite中的动态内存分配(五)
返回:SQLite—系列文章目录 上一篇:SQLite中的原子提交(四) 下一篇:自己编译SQLite或将SQLite移植到新的操作系统(六) 概述 SQLite使用动态内存分配来获得 用于存储各种对象的内存 (例如…...
快速上手Spring Cloud 十一:微服务架构下的安全与权限管理
快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …...
幸福依赖于抽象的 能力的庖丁解牛
它的本质是:**将幸福的源头从 具体实现类 (Concrete Implementations)(如特定的伴侣、具体的工作、固定的房产)转移到 抽象接口 (Abstract Interfaces)(如爱的能力、创造价值的技能、感知美好的心智)。具体实现是不可控…...
命令行与IM桥接工具:适配器模式实现统一消息通知
1. 项目概述与核心价值最近在折腾一个挺有意思的东西,一个叫tmwgsicp/im-cli-bridge的项目。光看这个名字,可能有点摸不着头脑,我来拆解一下。tmwgsicp大概率是作者的用户名或者组织名,im-cli-bridge才是核心。im是即时通讯&#…...
SAP IM投资管理:从后台配置到前台应用的实战指南
1. SAP IM投资管理模块入门指南 第一次接触SAP IM模块时,我被这个看似复杂但功能强大的系统深深吸引。IM(Investment Management)投资管理模块是SAP系统中专门用于管理企业资本性支出的核心组件,它能够帮助企业实现从预算分配到最…...
3D Tiles-Tools实战指南:如何高效处理大规模地理空间3D数据转换?
3D Tiles-Tools实战指南:如何高效处理大规模地理空间3D数据转换? 【免费下载链接】3d-tiles-tools 项目地址: https://gitcode.com/gh_mirrors/3d/3d-tiles-tools 在数字孪生、智慧城市和地理信息系统领域,大规模3D地理空间数据的高效…...
WeChatIntercept:终极Mac微信防撤回插件完整指南
WeChatIntercept:终极Mac微信防撤回插件完整指南 【免费下载链接】WeChatIntercept 微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 你是否经历过这样的…...
准备转型AI产品经理的朋友,建议看看这本书
本文从《AI即未来:普通人用好人工智能的18大工作场景》出发,深入探讨了AI大模型的选择、部署及评估。文章指出,面对众多AI工具,应根据任务需求、输出质量、成本等因素进行选择,并强调AI更像助手,需人类监督…...
如何在Windows上快速安装iPhone网络共享驱动:3分钟终极解决方案
如何在Windows上快速安装iPhone网络共享驱动:3分钟终极解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.c…...
Kali+MSF 安全攻防实操|Windows 渗透完整流程教程
入侵电脑,并没有我们想象的那么难,今天我们的文章主要是给一些基础比较薄弱的小伙伴们准备的,如果你从来没有利用msf进入过对方计算机,就赶紧找个风和日丽的下午,跟着博主一起来试试吧~ 01 什么是msf 演示环境 02 …...
oh-my-iflow:基于多智能体协作的自动化命令行开发工作流
1. 项目概述:当命令行遇上多智能体工作流如果你和我一样,每天有大量时间泡在终端里,那你肯定对命令行工具的效率又爱又恨。爱的是它直接、强大,恨的是很多复杂任务依然需要我们手动串联多个命令,或者在不同工具间来回切…...
麻省理工博士生弃博投身数字人类研究:10年、100亿美元、5万台H100或可实现
【导语:麻省理工学院博士生Isaak Freeman放弃攻读博士学位,投身数字人类研究。他认为人类若保持碳基形态将在智力竞争中被AI淘汰,而将意识迁移到数字基质上是出路,并给出实现数字人类的粗略计算和路线图。】数字人类:从…...
