我找不到一种方法来四舍五入双到2个小数位,并删除尾随零在 dart 。我找到了一种方法来四舍五入,但它不工作,如果我试图截断尾随零。
以下是我正在努力做的事情:
double x = 5.0;
double y = 9.25843223423423;
double z = 10.10;
print(x); //Expected output --> 5
print(y); //Expected output --> 9.26
print(z); //Expected output --> 10.1
编辑:
我发现了一个解决上面前2个print语句的方法。我想我应该为搜索它的人添加它。
String getFormattedNumber( num ) {
var result;
if(num % 1 == 0) {
result = num.toInt();
} else {
result = num.toStringAsFixed(2);
}
return result.toString();
}
2条答案
按热度按时间fhg3lkii1#
根据小数表示法对浮点数进行舍入没有多大意义,因为许多小数(如
0.3
)can't be exactly represented by floating point numbers anyway。(这是所有浮点数固有的特性,并非特定于Dart。)但是,您可以尝试使数字的 string 表示形式更美观。
num.toStringAsFixed
舍入到指定的小数位数。在此基础上,您可以使用正则表达式删除尾随零:另请参见How to remove trailing zeros using Dart。
55ooxyrt2#
下面是您想要的示例代码。
1.乘以10^(点后数字的计数)
如果点后数计数为2
9.25843223423423至〉925.843223423423
1.第1轮)的结果
925.843223423423 -〉926
1.除以10^(点后数的计数)
926 -〉9时26分