diff --git a/lib/src/formatters/centavos_input_formatter.dart b/lib/src/formatters/centavos_input_formatter.dart index 11143d4..9596fd3 100644 --- a/lib/src/formatters/centavos_input_formatter.dart +++ b/lib/src/formatters/centavos_input_formatter.dart @@ -6,12 +6,16 @@ import 'adiciona_separador.dart'; /// /// `casasDecimais` indica a quantidade de casas usadas. class CentavosInputFormatter extends TextInputFormatter { - CentavosInputFormatter({this.moeda = false, this.casasDecimais = 2}) - : assert(casasDecimais == 2 || casasDecimais == 3, + CentavosInputFormatter({ + this.moeda = false, + this.casasDecimais = 2, + this.mostrarZerado = false, + }) : assert(casasDecimais == 2 || casasDecimais == 3, 'Quantidade de casas decimais deve ser 2 ou 3. Informado: $casasDecimais'); final bool moeda; final int casasDecimais; + final bool mostrarZerado; @override TextEditingValue formatEditUpdate( @@ -42,7 +46,7 @@ class CentavosInputFormatter extends TextInputFormatter { } // apaga o campo quando os valores foram zero. - if (numero == 0 && int.tryParse(centsValue) == 0) { + if (!mostrarZerado && numero == 0 && int.tryParse(centsValue) == 0) { return const TextEditingValue( text: "", selection: TextSelection.collapsed(offset: 0), @@ -63,8 +67,10 @@ class CentavosInputFormatter extends TextInputFormatter { ); } + final minCentsValor = mostrarZerado ? 0 : 1; + // formata o nĂºmero com 0, + centavos - if (numero > 0 && numero <= 9) { + if (numero >= minCentsValor && numero <= 9) { if (casasDecimais == 3) { centsValue = "00$numero"; } else {