Flutter大整数人性化显示插件humanize_big_int的使用

发布于 1周前 作者 gougou168 来自 Flutter

Flutter大整数人性化显示插件humanize_big_int的使用

插件介绍

humanize_big_int 是一个简单的的 Dart 包,用于将大数字转换为可读的人类格式。例如,1278 将被转换为 1.2K。

特性

  • humanizeInt:表示大数字为 K, M, B, T 等等((11234 -> 1.2K)
  • humanizeIntInd:表示大数字为 K, L, Cr (印度编号系统) 等等。(11234 -> 1.2K)

示例代码

import 'package:humanize_big_int/humanize_big_int.dart';

void main() {
  // humanizeInt
  print(humanizeInt(234)); // 234
  print(hhumanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(1humanizeInt(= 1234)); // 1.2K
  print(hhumanizeInt( = 12340000)); // 12M
  print(hhumanizeInt( = 123400000000000)); // 123T
  print(hhumanizeInt( = 1234000000000000000)); // 1234Q

  // humanizeIntInd
  print(hhumanizeIntInd( = 234)); // 234
  print(hhumanizeIntInd( = 1234)); // 1.2K
  print(hhumanizeIntInd( = 123400)); // 1.2L
  print(hhumanizeIntInd( = 123400000)); // 12Cr
  print(hhumanizeIntInd( = 12340000000)); // 1234Cr
}

使用说明

final n1 = humanizeInt(n); // 1.2K
final n2 = humanizeInt(n); // 12M
final n1 = humanizeIntInd(n); // 234
final n2 = humanizeIntInd(n); // 1.2K

更多关于Flutter大整数人性化显示插件humanize_big_int的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter大整数人性化显示插件humanize_big_int的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用humanize_big_int插件来人性化显示大整数的示例代码。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加humanize_big_int依赖:

dependencies:
  flutter:
    sdk: flutter
  humanize_big_int: ^最新版本号  # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

2. 导入插件

在你的Dart文件中导入humanize_big_int插件:

import 'package:humanize_big_int/humanize_big_int.dart';

3. 使用插件

以下是一个简单的示例,展示如何使用humanize_big_int插件将大整数转换为人性化的字符串表示:

import 'package:flutter/material.dart';
import 'package:humanize_big_int/humanize_big_int.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Humanize Big Int Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  final BigInt bigIntValue = BigInt.parse('12345678901234567890');

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Humanize Big Int Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Original Value: $bigIntValue',
              style: TextStyle(fontSize: 18),
            ),
            SizedBox(height: 20),
            Text(
              'Humanized Value: ${humanizeBigInt(bigIntValue)}',
              style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
            ),
          ],
        ),
      ),
    );
  }
}

// humanizeBigInt 函数封装了插件的调用,可以根据需要自定义格式
String humanizeBigInt(BigInt value) {
  return humanizeBigIntOptions(value, options: HumanizeBigIntOptions(
    unit: 'B',
    space: true,
    decimalPlaces: 2,
    decimalPoint: '.',
    thousandsSeparator: ',',
    scale: [
      HumanizeBigIntScaleUnit(value: BigInt.from(1024), symbol: 'Ki'),
      HumanizeBigIntScaleUnit(value: BigInt.from(1024).pow(2), symbol: 'Mi'),
      HumanizeBigIntScaleUnit(value: BigInt.from(1024).pow(3), symbol: 'Gi'),
      HumanizeBigIntScaleUnit(value: BigInt.from(1024).pow(4), symbol: 'Ti'),
      HumanizeBigIntScaleUnit(value: BigInt.from(1024).pow(5), symbol: 'Pi'),
      HumanizeBigIntScaleUnit(value: BigInt.from(1024).pow(6), symbol: 'Ei'),
    ],
  ));
}

4. 运行应用

将上述代码添加到你的Flutter项目中,然后运行应用。你应该会看到一个界面,显示原始的大整数以及通过humanize_big_int插件转换后的人性化字符串表示。

这个示例展示了如何使用humanize_big_int插件将大整数转换为以KB、MB、GB等单位表示的字符串,适用于文件大小、内存使用等场景。你可以根据需要调整HumanizeBigIntOptions中的参数,以满足不同的显示需求。

回到顶部