コード例 #1
0
        private void ResolverParteInteira(decimal valor)
        {
            var numeroDaParteInteira = (long)Math.Truncate(valor);

            if (numeroDaParteInteira > 0)
                _parteInteira = ConversorDeNumeroParaClasses.Converter(numeroDaParteInteira);
        }
コード例 #2
0
        protected string LigaClasses(string ordem, Classe classeAnterior)
        {
            var conjuncao = ObterConjuncao(classeAnterior);
            var deveColocarConjuncao = classeAnterior.Algarismos.Take(1).First() != 0;
            var classeAnteriorPorExtenso = ((deveColocarConjuncao ? conjuncao : string.Empty) + classeAnterior);

            return ordem + (EhClasseAnteriorTudoZero ? string.Empty : classeAnteriorPorExtenso);
        }
コード例 #3
0
ファイル: Classe.cs プロジェクト: diogonc/EscritaPorExtenso
        protected string LigaClasses(string ordem, Classe classeAnterior)
        {
            var conjuncao                = ObterConjuncao(classeAnterior);
            var deveColocarConjuncao     = classeAnterior.Algarismos.Take(1).First() != 0;
            var classeAnteriorPorExtenso = ((deveColocarConjuncao ? conjuncao : string.Empty) + classeAnterior);

            return(ordem + (EhClasseAnteriorTudoZero ? string.Empty : classeAnteriorPorExtenso));
        }
コード例 #4
0
        private void ResolverParteDecimal(decimal valor)
        {
            var parteDecimal = ((valor - Math.Truncate(valor)) * 100);

            if (parteDecimal - Math.Truncate(parteDecimal) > 0)
                throw new Exception(string.Format("O valor {0} tem mais de duas casas decimais", valor));

            var numeroDaParteDecimal = (long)parteDecimal;

            if (numeroDaParteDecimal <= 0) return;

            numeroDaParteDecimal = ReduzirNumeroDaParteDecimal(numeroDaParteDecimal);
            _parteDecimal = ConversorDeNumeroParaClasses.Converter(numeroDaParteDecimal);
        }
コード例 #5
0
        public Real(decimal valor)
        {
            var numeroDaParteInteira = (long)Math.Truncate(valor);

            if (numeroDaParteInteira > 0)
            {
                _parteInteira = ConversorDeNumeroParaClasses.Converter(numeroDaParteInteira);
                _pluralidadeInteira = ObterPluralidadeDaParteInteira(numeroDaParteInteira);
            }

            var parteDecimal = ((valor - Math.Truncate(valor))*100);

            if (parteDecimal - Math.Truncate(parteDecimal) > 0)
                throw new Exception(string.Format("O valor {0} tem mais de duas casas decimais", valor));

            var numeroDaParteDecimal = (long) parteDecimal;

            if (numeroDaParteDecimal > 0)
            {
                _parteDecimal = ConversorDeNumeroParaClasses.Converter(numeroDaParteDecimal);
                _pluralidadeDecimal = ObterPluralidadeDaParteDecimal(numeroDaParteDecimal);
            }
        }
コード例 #6
0
 public Milhar(Ordem ordem, Classe classeAnterior = null)
 {
     Ordem = ordem;
     ClasseAnterior = classeAnterior ?? new PrimeiraClasse(new Centena(0));
 }
コード例 #7
0
 public Milhao(Ordem ordem, Classe classeAnterior = null)
 {
     Ordem          = ordem;
     ClasseAnterior = classeAnterior ?? new Milhar(new Centena(0));
 }
コード例 #8
0
 protected static string ObterConjuncao(Classe classeAnterior)
 {
     var numeroDaClasseAnterior = ConverterParaNumero(classeAnterior);
     var ehExcecao = numeroDaClasseAnterior % 10 == 0 || numeroDaClasseAnterior < 100;
     return ehExcecao ? " e " : ", ";
 }
コード例 #9
0
 protected static long ConverterParaNumero(Classe classeAnterior)
 {
     var numeroDaClasseAnterior = Convert.ToInt64(string.Join(string.Empty, classeAnterior.Algarismos.Take(3).Select(algarismo => algarismo.ToString())));
     return numeroDaClasseAnterior;
 }
コード例 #10
0
 private string LigaClasses(string ordem, Classe classeAnterior)
 {
     var conjuncao = ObterConjuncao(classeAnterior);
     return ordem + (EhClasseAnteriorTudoZero ? string.Empty : (conjuncao + classeAnterior));
 }
コード例 #11
0
ファイル: Milhar.cs プロジェクト: diogonc/EscritaPorExtenso
 public Milhar(Ordem ordem, Classe classeAnterior = null)
 {
     Ordem          = ordem;
     ClasseAnterior = classeAnterior ?? new PrimeiraClasse(new Centena(0));
 }
コード例 #12
0
ファイル: Classe.cs プロジェクト: diogonc/EscritaPorExtenso
        protected static long ConverterParaNumero(Classe classeAnterior)
        {
            var numeroDaClasseAnterior = Convert.ToInt64(string.Join(string.Empty, classeAnterior.Algarismos.Take(3).Select(algarismo => algarismo.ToString())));

            return(numeroDaClasseAnterior);
        }
コード例 #13
0
 public Milhao(Ordem ordem, Classe classeAnterior = null)
 {
     Ordem = ordem;
     ClasseAnterior = classeAnterior ?? new Milhar(new Centena(0));
 }