码迷,mamicode.com
首页 > 其他好文 > 详细

【Dart】数字格式化成 ‘...k'

时间:2020-04-06 10:02:20      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:break   stack   value   mat   att   git   str   replace   flow   

  /// https://stackoverflow.com/a/9462382
  nFormatter(dynamic num, [int digits]) {
    var si = [
      {‘value‘: 1, ‘symbol‘: ‘‘},
      {‘value‘: 1e3, ‘symbol‘: ‘k‘},
      {‘value‘: 1e6, ‘symbol‘: ‘M‘},
      {‘value‘: 1e9, ‘symbol‘: ‘G‘},
      {‘value‘: 1e12, ‘symbol‘: ‘T‘},
      {‘value‘: 1e15, ‘symbol‘: ‘P‘},
      {‘value‘: 1e18, ‘symbol‘: ‘E‘},
    ];
    var rx = RegExp(r‘\.0+$|(\.[0-9]*[1-9])0+$‘);
    var i;
    for (i = si.length - 1; i > 0; i--) {
      if (num.abs() >= si[i][‘value‘]) {
        break;
      }
    }
    return (num / si[i][‘value‘]).toStringAsFixed(digits).replaceAll(rx, ‘‘) +
        si[i][‘symbol‘];
  }
}

【Dart】数字格式化成 ‘...k'

标签:break   stack   value   mat   att   git   str   replace   flow   

原文地址:https://www.cnblogs.com/teemwu/p/12640349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!