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

Flutter(Dart)中如何将double类型值转换/取整为int或String类型

Dart中double类型转无小数位int/字符串实现方法

replaceAll是字符串类型的专属方法,直接对double类型数值调用会触发类型错误,这是之前操作不生效的核心原因。实现无小数位转换优先使用Dart内置的数值方法即可,不需要手动截取字符串。

转换为int类型

根据实际需要的取整规则,直接调用double对应的内置方法即可:

  • 截断取整:直接丢弃所有小数位,不做进位处理,最贴合"仅获取不带小数位数值"的基础需求,使用toInt()方法
final dblValue = 25.5;
// 输出结果为25,直接舍弃.5的小数部分
final int truncateResult = dblValue.toInt();
  • 四舍五入取整:根据小数位数值判断是否进位,使用round()方法
// 25.5调用后结果为26,25.4调用后结果为25
final int roundResult = dblValue.round();
  • 向上取整:只要存在小数位,就向数值更大的方向进位,使用ceil()方法
// 25.1调用后结果也为26,-25.9调用后结果为-25
final int ceilResult = dblValue.ceil();
  • 向下取整:只要存在小数位,就向数值更小的方向舍位,使用floor()方法
// 25.9调用后结果也为25,-25.1调用后结果为-26
final int floorResult = dblValue.floor();

转换为不带小数位的String类型

两种常用实现方案:

  1. 先按业务需求选择对应规则取整为int类型,再转字符串,逻辑严谨不会出现异常格式
// 以截断取整为例,输出结果为"25"
final String int2strResult = dblValue.toInt().toString();
  1. 如果不需要做数值层面的取整,仅需硬截取小数点前的文本内容,先将double转为字符串再分割即可
// 转字符串后按小数点分割,取第一段内容,输出结果为"25"
final String splitStrResult = dblValue.toString().split('.')[0];

注意:浮点数存在固有精度误差,如果是金额等对精度要求极高的场景,不要直接用double做转换计算,建议使用专门的高精度数值类型处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:00:59