dart - 如何转换大数以缩短 Dart 中的 K/M/B

标签 dart

如何在 Dart 中创建将大数转换为带字符的短数的函数?

喜欢

1000 => 1K
10000 => 10K
1000000 => 1M
10000000 => 10M
1000000000 => 1B

最佳答案

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

var f = NumberFormat.compact(locale: "en_IN");
print(f.format(12345));

让它成为一个方法:

getShortForm(var number) {
  var f = NumberFormat.compact(locale: "en_US");
  return f.format(number);
}

为此导入

import 'package:intl/intl.dart';

有关更多信息,请参阅此文档 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;
}

关于dart - 如何转换大数以缩短 Dart 中的 K/M/B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52661247/

相关文章:

firebase - 为什么此快照两次将每个文档获取两次? flutter

dart - 在点击图标时呈现屏幕

Flutter Dart try catch 异常行号

flutter - 如何将动态表添加到 Flutter

dart - Flutter Positioned Transitioned to below other Stack child - 如何获得高度?

flutter - 创建 StatefulWidget 时访问 Flutter 上下文

http - Flutter consolidateHttpClientResponseBytes未定义错误?

android - Flutter Event Channel Stream 导致应用程序崩溃(与设备的连接丢失)

firebase - Firestore : Updating field in an object removes previous field

flutter - 浏览 dart 中的嵌套字典