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

Dart中保留double类型去除小数部分后显示.0的问题

解决Dart中保留Double类型且优化小数部分显示的问题

一、直接获取整数形式的Double值(无需字符串中转)

不用先转字符串再解析,直接利用Dart内置的数值处理方法,根据你的取舍规则选择:

  • 四舍五入(匹配你原toStringAsFixed(0)的行为):使用roundToDouble()
    double num = 333.5;
    double result = num.roundToDouble(); // 得到334.0(Double类型)
    
  • 直接截断小数(不四舍五入):使用truncateToDouble()
    double num = 333.5;
    double result = num.truncateToDouble(); // 得到333.0(Double类型)
    
  • 向下取整:使用floorToDouble()
    double num = 333.5;
    double result = num.floorToDouble(); // 得到333.0(Double类型)
    
  • 向上取整:使用ceilToDouble()
    double num = 333.5;
    double result = num.ceilToDouble(); // 得到334.0(Double类型)
    

二、消除显示时的.0后缀

Double类型的整数形式本质就是x.0,DartPad和你的开发环境显示差异源于两者的字符串格式化逻辑不同。要在显示时去掉.0,只需在输出/展示环节做处理,不改变Double类型本身:

double result = 334.0;
// 方法1:判断是否为整数后转换
String displayStr = result == result.toInt() ? result.toInt().toString() : result.toString();
// 方法2:直接替换后缀(适合确定是整数形式的Double)
String displayStr = result.toString().replaceAll('.0', '');

两种方法都会得到"334"的显示字符串,同时你依然可以传递原始的Double类型数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:55:19