2019-04-12 flutter 數字千位符數,字格式化,金額格式化

 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');
    }
    //如果大于長度就截取
    if (points.length > point) {
      // 截取數組
      points = points.sublist(0, point);
    }
    // 判斷是否有長度
    if (points.length > 0) {
      return '${val.join('')}.${points.join('')}';
    } else {
      return val.join('');
    }
  } else {
    return "0.0";
  }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容