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
相关产品推荐
相关产品推荐

