Flutter数字转波斯文插件num2persian的使用

Flutter数字转波斯文插件num2persian的使用

num2persian 是一个用于将数字转换为波斯文字的 Dart 库。这在以波斯语为主要语言的应用程序中显示数字时非常有用,例如将货币金额写成文字。

特性

  • 将数字转换为波斯文字。
  • 将数字转换为波斯货币单位(土曼,里亚尔)。
  • 使用逗号格式化数字。
  • 将数字转换为波斯数字。
  • 在土曼和里亚尔之间进行转换。
  • 支持 intString 类型。

安装

在你的 pubspec.yaml 文件中添加以下依赖项:

dependencies:
  num2persian: ^0.0.3

然后运行 flutter pub get 来获取该包。

使用

要使用 num2persian 库,在 Dart 代码中导入它:

import 'package:num2persian/num2persian.dart';

示例

将数字转换为波斯文字

对于 String 类型:

String number = "123";
print(number.toPersianLetter()); // 输出: یکصد و بیست و سه

对于 int 类型:

int number = 123;
print(number.toPersianLetter()); // 输出: یکصد و بیست و سه

将数字转换为波斯货币单位

转换为土曼:

String number = "12345";
print(number.toToman()); // 输出: دوازده هزار و سیصد و چهل و پنج تومان

转换为里亚尔:

int number = 12345;
print(number.toRial()); // 输出: دوازده هزار و سیصد و چهل و پنج ریال

使用逗号格式化数字

对于 String 类型:

String number = "1234567";
print(number.formatWithCommas()); // 输出: 1,234,567

对于 int 类型:

int number = 1234567;
print(number.formatWithCommas()); // 输出: 1,234,567

将数字转换为波斯数字

对于 String 类型:

String number = "1234567";
print(number.toPersianNumber()); // 输出: ۱۲۳۴۵۶۷

对于 int 类型:

int number = 1234567;
print(number.toPersianNumberInt()); // 输出: ۱۲۳۴۵۶۷

将里亚尔转换为土曼

对于 String 类型:

String rial = "1234567";
print(rial.rialToToman()); // 输出: 123456

对于 int 类型:

int rial = 1234567;
print(rial.rialToToman()); // 输出: 123456

将土曼转换为里亚尔

对于 String 类型:

String toman = "123456";
print(toman.tomanToRial()); // 输出: 1234560

对于 int 类型:

int toman = 123456;
print(toman.tomanToRial()); // 输出: 1234560

Flutter 使用

你可以在 Flutter 应用程序中使用 num2persian 来在 UI 组件中以波斯文字显示数字。

示例 Flutter 应用

这是一个简单的 Flutter 应用示例,使用了 num2persian 库:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('num2persian 示例'),
        ),
        body: Center(
          child: NumberDisplay(),
        ),
      ),
    );
  }
}

class NumberDisplay extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    String number = "123456";
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Text('数字: $number'),
        Text('波斯文字: ${number.toPersianLetter()}'),
        Text('作为土曼: ${number.toToman()}'),
        Text('作为里亚尔: ${number.toRial()}'),
        Text('带逗号: ${number.formatWithCommas()}'),
        Text('波斯数字: ${number.toPersianNumber()}'),
        Text('里亚尔转土曼: ${number.rialToToman()}'),
        Text('土曼转里亚尔: ${number.tomanToRial()}'),
      ],
    );
  }
}

这个示例创建了一个简单的 Flutter 应用,其中包含一个 NumberDisplay 小部件,该小部件展示了数字的不同格式,使用了 num2persian 库。

API

num2persian

String num2Persian(String number)

将数字字符串转换为其波斯文字等效形式。

String number = "123";
print(num2Persian(number)); // 输出: یکصد و بیست و سه

num2persian.PersianNumbers

String toPersianLetter()

将数字字符串转换为其波斯文字等效形式。

String number = "123";
print(number.toPersianLetter()); // 输出: یکصد و بیست و سه

String toToman()

将数字字符串转换为带有 “تومان” 的波斯文字。

String number = "12345";
print(number.toToman()); // 输出: دوازده هزار و سیصد و چهل و پنج تومان

String toRial()

将数字字符串转换为带有 “ریال” 的波斯文字。

String number = "12345";
print(number.toRial()); // 输出: دوازده هزار و سیصد و چهل و پنج ریال

String formatWithCommas()

将数字字符串用逗号格式化。

String number = "1234567";
print(number.formatWithCommas()); // 输出: 1,234,567

String toPersianNumber()

将数字字符串转换为波斯数字。

String number = "1234567";
print(number.toPersianNumber()); // 输出: ۱۲۳۴۵۶۷

Extensions on int

String toPersianLetter()

将整数转换为其波斯文字等效形式。

int number = 123;
print(number.toPersianLetter()); // 输出: یکصد و بیست و سه

String toToman()

将整数转换为带有 “تومان” 的波斯文字。

int number = 12345;
print(number.toToman()); // 输出: دوازده هزار و سیصد و چهل و پنج تومان

String toRial()

将整数转换为带有 “ریال” 的波斯文字。

int number = 12345;
print(number.toRial()); // 输出: دوازده هزار و سیصد و چهل و پنج ریال

String toPersianNumberInt()

将整数转换为波斯数字。

int number = 1234567;
print(number.toPersianNumberInt()); // 输出: ۱۲۳۴۵۶۷

String formatWithCommas()

将整数用逗号格式化。

int number = 1234567;
print(number.formatWithCommas()); // 输出: 1,234,567

String rialToToman()

将整数从里亚尔转换为土曼。

int rial = 1234567;
print(rial.rialToToman()); // 输出: 123456

String tomanToRial()

将整数从土曼转换为里亚尔。

int toman = 123456;
print(toman.tomanToRial()); // 输出: 1234560

更多关于Flutter数字转波斯文插件num2persian的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter数字转波斯文插件num2persian的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


num2persian 是一个用于将数字转换为波斯语(Farsi)表示的 Flutter 插件。它可以将阿拉伯数字(如 123)转换为波斯数字(如 ۱۲۳),或者将数字转换为波斯语的文字表示(如 “صد و بیست و سه”)。以下是如何在 Flutter 项目中使用 num2persian 插件的步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 num2persian 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  num2persian: ^1.0.0  # 请确保使用最新版本

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

2. 导入包

在你的 Dart 文件中导入 num2persian 包:

import 'package:num2persian/num2persian.dart';

3. 使用 num2persian 插件

num2persian 插件提供了以下功能:

  • 将阿拉伯数字转换为波斯数字。
  • 将数字转换为波斯语的文字表示。

示例 1: 将阿拉伯数字转换为波斯数字

void main() {
  int number = 12345;
  String persianNumber = number.toPersianNumber();
  print(persianNumber);  // 输出: ۱۲۳۴۵
}

示例 2: 将数字转换为波斯语的文字表示

void main() {
  int number = 123;
  String persianWords = number.toPersianWord();
  print(persianWords);  // 输出: "صد و بیست و سه"
}

示例 3: 处理浮点数

void main() {
  double number = 123.45;
  String persianNumber = number.toPersianNumber();
  print(persianNumber);  // 输出: ۱۲۳.۴۵

  String persianWords = number.toPersianWord();
  print(persianWords);  // 输出: "صد و بیست و سه ممیز چهل و پنج"
}

4. 自定义选项

num2persian 还提供了一些自定义选项,比如控制是否使用逗号分隔符等。

示例 4: 使用逗号分隔符

void main() {
  int number = 1234567;
  String persianNumber = number.toPersianNumber(useSeparator: true);
  print(persianNumber);  // 输出: ۱،۲۳۴،۵۶۷
}

5. 完整示例

以下是一个完整的 Flutter 应用示例,展示如何在应用中显示转换后的波斯数字和文字:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('num2persian Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                'Number: 12345',
                style: TextStyle(fontSize: 24),
              ),
              Text(
                'Persian Number: ${12345.toPersianNumber()}',
                style: TextStyle(fontSize: 24),
              ),
              Text(
                'Persian Words: ${12345.toPersianWord()}',
                style: TextStyle(fontSize: 24),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
回到顶部