예제 #1
0
        public string Extenso()
        {
            if (grupoFilho == null)
            {
                return(digito.Extenso());
            }
            else if (ValorSomenteDoGrupo() == 0)
            {
                return(grupoFilho.Extenso());
            }
            else
            {
                double valorGrupo     = digito.ValorTotal();
                string singularPlural = valorGrupo < 2 ? "singular" : "plural";
                string nomeGrupo      =
                    ResourceManagerHelper
                    .Instance
                    .ResourceManager
                    .GetString(string.Format("Extenso1e{0}{1}", (posicao - 1) * 3, singularPlural));

                double valorGrupoFilho = grupoFilho.ValorTotal();

                if (valorGrupoFilho == 0)
                {
                    return(string.Format("{0} {1}",
                                         digito.Extenso(),
                                         nomeGrupo));
                }
                else
                {
                    GrupoDe3Digitos proximoGrupoComValor = grupoFilho.PrimeiroGrupoComValor();
                    string          separador            = string.Empty;

                    if (proximoGrupoComValor.Posicao == 1)
                    {
                        if (Posicao == 2 &&
                            proximoGrupoComValor.numero >= 100 && proximoGrupoComValor.numero >= 10)
                        {
                            separador = string.Empty;
                        }
                        else
                        {
                            separador = " e";
                        }
                    }
                    else
                    {
                        separador = ",";
                    }

                    return(string.Format("{0} {1}{2} {3}",
                                         digito.Extenso(),
                                         nomeGrupo,
                                         separador,
                                         grupoFilho.Extenso()));
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Transforma um número em sua representação por extenso, em português.
        /// </summary>
        /// <param name="numeroOrigem">número a ser transformado</param>
        /// <returns></returns>
        public virtual string Extenso()
        {
            GrupoDe3Digitos grupo = GetGrupoPrincipal(numeroOrigem);

            return(grupo.Extenso());
        }