如何在 Dart 中转换大数以缩短 K/M/B

Kod*_*ata 3 dart

如何创建将大数转换为带有字符的缩短数的函数Dart

喜欢

1000 => 1K
10000 => 10K
1000000 => 1M
10000000 => 10M
1000000000 => 1B
Run Code Online (Sandbox Code Playgroud)

San*_* TM 9

Dart中有一个内置函数可以使用,而且很简单:

var f = NumberFormat.compact(locale: "en_IN");
print(f.format(12345));
Run Code Online (Sandbox Code Playgroud)

使其成为一种方法:

getShortForm(var number) {
  var f = NumberFormat.compact(locale: "en_US");
  return f.format(number);
}
Run Code Online (Sandbox Code Playgroud)

为此,导入

import 'package:intl/intl.dart';
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此文档https://pub.dev/documentation/intl/latest/intl/NumberFormat-class.html

如果您正在寻找困难的方法:

getShortForm(int number) {
  var shortForm = "";
  if (number != null) {
    if (number < 1000) {
      shortForm = number.toString();
    } else if (number >= 1000 && number < 1000000) {
      shortForm = (number / 1000).toStringAsFixed(1) + "K";
    } else if (number >= 1000000 && number < 1000000000) {
      shortForm = (number / 1000000).toStringAsFixed(1) + "M";
    } else if (number >= 1000000000 && number < 1000000000000) {
      shortForm = (number / 1000000000).toStringAsFixed(1) + "B";
    }
  }
  return shortForm;
}
Run Code Online (Sandbox Code Playgroud)