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

Dart中如何限制打印输出的小数位数?

解决Dart中限制打印小数位数的问题

嘿,别着急,这其实是个很容易解决的小问题!你之前用toStringAsFixed()的思路完全没问题,只是需要把这个方法用在温度转换的计算结果上就行啦。

你之前直接对price调用toStringAsFixed(2)能成功,是因为目标对象本身就是要格式化的数值。现在在字符串插值里,你需要先把temp * 1.8 + 32这个计算结果用括号包裹,再调用toStringAsFixed(1),就能把它格式化为1位小数了。

修改后的代码如下:

String inTemp = stdin.readLineSync();
int temp = int.parse(inTemp);
switch (selection) {
  case 'A':
    print('$temp degrees Celcius is ${(temp * 1.8 + 32).toStringAsFixed(1)} degrees Fahrenheit');
}

简单拆解一下逻辑:

  • (temp * 1.8 + 32)先完成摄氏度转华氏度的计算,得到一个double类型的数值
  • 调用toStringAsFixed(1)会把这个数值四舍五入到1位小数,并返回格式化后的字符串
  • 最后把这个字符串插入到输出语句里,就不会再出现14位冗余小数的情况了

举个实际例子:如果输入的temp是23,计算结果是73.4,输出就会是23 degrees Celcius is 73.4 degrees Fahrenheit;如果输入的是10,计算结果是50.0,输出就是10 degrees Celcius is 50.0 degrees Fahrenheit,完全符合你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:30:17