Search packages, repositories and app categories

Package detailsv2.3.2

currency_text_input_formatter

Currency Text Input Formatter for Flutter. Use it easy and simple for your flutter app.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
121K
Likes
293
Pub points
160

Install package

flutter pub add currency_text_input_formatter

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter package that formats text input as currency, automatically adding symbols, separators, and decimal points. It simplifies handling monetary values in text fields by ensuring consistent formatting during user input. Ideal for forms requiring financial data entry, it supports multiple platforms including mobile, web, and desktop. The formatter is easy to integrate and enhances user experience by providing real-time visual feedback on currency input.

Use cases

  • Financial app form inputs
  • E-commerce price entry
  • Expense tracking applications
  • Invoice and billing systems
  • User profile financial details
  • Payment gateway integration

Key features

  • Real-time currency formatting
  • Supports custom currency symbols
  • Automatic decimal and thousands separators
  • Cross-platform compatibility
  • Simple integration with TextFields
  • Configurable decimal places

Suitable for

  • Developers building finance-related apps
  • Apps requiring formatted monetary input
  • Projects needing consistent number formatting
  • Teams prioritizing user input usability
  • Flutter beginners seeking simple formatters

Considerations

  • May require additional validation for edge cases
  • Customization options limited to basic formatting
  • Does not handle currency conversion
  • Not suitable for multi-currency environments without extra logic
  • Performance impact negligible but present in high-frequency updates

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Currency Text Input Formatter

pub package

Currency Text Input Formatter for Flutter. https://pub.dev/packages/currency_text_input_formatter

Installation

Solving Intl package conflict

Add this code end of pubspec.yaml.

dependency_overrides:
  intl: your intl package version

Usage

Basic
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Welcome to Flutter'),
        ),
        body: Center(
          child: TextField(
            inputFormatters: [CurrencyTextInputFormatter.currency()],
            // inputFormatters: [CurrencyTextInputFormatter.simpleCurrency()], < for simple
            // inputFormatters: [CurrencyTextInputFormatter()], < for basic
            keyboardType: TextInputType.number,
          ),
        ),
      ),
    );
  }
}
With initialValue
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Welcome to Flutter'),
        ),
        body: Center(
          child: MyFormField(),
        ),
      ),
    );
  }
}

class MyFormField extends StatefulWidget {
  const MyFormField({ super.key });

  @override
  State<MyFormField> createState() => _MyFormFieldState();
}

class _MyFormFieldState extends State<MyFormField> {
  final CurrencyTextInputFormatter _formatter = CurrencyTextInputFormatter.currency();

  @override
  Widget build(BuildContext context) {
    return TextFormField(
      initialValue: _formatter.formatString('2000'),
      inputFormatters: <TextInputFormatter>[_formatter],
      keyboardType: TextInputType.number,
    );
  }
}
Custom Options
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Welcome to Flutter'),
        ),
        body: Center(
          child: TextField(
            inputFormatters: <TextInputFormatter>[
              CurrencyTextInputFormatter.currency(
                locale: 'ko',
                decimalDigits: 0,
                symbol: 'KRW(원) ',
              ),
            ],
            keyboardType: TextInputType.number,
          ),
        ),
      ),
    );
  }
}
With built-in methods
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Welcome to Flutter'),
        ),
        body: Center(
          child: MyFormField(),
        ),
      ),
    );
  }
}

class MyFormField extends StatefulWidget {
  const MyFormField({ super.key });

  @override
  State<MyFormField> createState() => _MyFormFieldState();
}

class _MyFormFieldState extends State<MyFormField> {
  final CurrencyTextInputFormatter _formatter = CurrencyTextInputFormatter.currency();

  @override
  Widget build(BuildContext context) {
    // Built-in Methods
    print(_formatter.getFormattedValue()); // $ 2,000
    print(_formatter.getUnformattedValue()); // 2000.00
    print(_formatter.formatString('2000')); // $ 2,000
    print(_formatter.formatDouble(20.00)); // $ 20

    return TextFormField(
      inputFormatters: <TextInputFormatter>[_formatter],
      keyboardType: TextInputType.number,
    );
  }
}

Recommend Libraries

Maintainer

License

MIT

Categories

Dependencies

Dependency list 1 items

Source repository

Projects using this package