2019-04-12 flutter 数字千位符数,字格式化,金
2019-04-12 本文已影响3人
deadcalm
String formatNum(num, {point: 3}) {
if (num != null) {
String str = double.parse(num.toString()).toString();
// 分开截取
List<String> sub = str.split('.');
// 处理值
List val = List.from(sub[0].split(''));
// 处理点
List<String> points = List.from(sub[1].split(''));
//处理分割符
for (int index = 0, i = val.length - 1; i >= 0; index++, i--) {
// 除以三没有余数、不等于零并且不等于1 就加个逗号
if (index % 3 == 0 && index != 0 && i != 1) val[i] = val[i] + ',';
}
// 处理小数点
for (int i = 0; i <= point - points.length; i++) {
points.add('0');
}
// 截取数组
points = points.sublist(0, point);
// 判断是否有长度
if (points.length > 0) {
return '${val.join('')}.${points.join('')}';
} else {
return val.join('');
}
} else {
return "0.0";
}
}