You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot保存带小数数值到MySQL异常:10,000.00存为10求助

解决Spring Boot保存带千分位逗号的数值到MySQL丢失数据的问题

你的问题根源很明确:带千分位逗号的数值(如10,000.00)在转成double类型时,默认解析逻辑会把逗号当成数值分隔符,只保留逗号前的部分(10),导致存入MySQL的数据不完整。以下是直接可行的解决方法:

  • 先清理数值再转换
    在Service层接收参数后,先去掉字符串里的千分位逗号,再转成数值类型。示例代码:

    // 假设传入的是带逗号的数值字符串
    String inputStr = "10,000.00";
    // 移除所有逗号
    String cleanStr = inputStr.replaceAll(",", "");
    // 转成BigDecimal(推荐,避免浮点数精度问题)
    BigDecimal amount = new BigDecimal(cleanStr);
    // 若坚持用double:double amount = Double.parseDouble(cleanStr);
    
  • 替换为更合适的数据类型
    把MySQL字段类型从double改成DECIMAL(10,2)(可根据你的数值范围调整精度),Java实体类对应使用BigDecimal类型。这种组合是处理金额、高精度数值的标准方案,能彻底避免浮点数的精度丢失问题。

  • 前端优化减少后端处理
    如果前端加逗号只是为了展示美观,建议提交数据时直接传无逗号的纯数值(比如10000.00),只在前端展示时做千分位格式化。这样后端无需额外处理,降低出错概率。

内容的提问来源于stack exchange,提问作者Emal Yaditha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:55:18