Oi alguém saberia onde posso encontrar um algoritmo, ou código java para transformar dízimas periódicas em frações ? do tipo 29/900, 5/10, 8/9, 22/990, etc…
Dízima periódica em fração
N
1 Resposta
D
Não conheço algoritmo para isso, o mais próximo q sei seria convertendo o numero em string, identificando a qtd de casas apos a virgula, multiplicando e dividindo por 10 elevado a qtd e dividindo pelo MDC.
Algo mais ou menos assim:
float numero;
int[] fracao = new int[2]; // fracao[0] / fracao[1]
String numeroString = numero;
int indiceDoPonto = numeroString.indexOf('.');
if (indiceDoPonto > 0) {
int casas = numeroString.length - indiceDoPonto - 1;
fracao[1] = Math.pow(10, casas);
fracao[0] = numero * fracao[1];
// MDC - Maximo divisor comum, para simplificar a fracao
int mdc = MDC(fracao[0], fracao[1]);
fracao[0] /= mdc;
fracao[1] /= mdc;
} else {
fracao[0] = numero;
fracao[1] = 1;
}
No caso de dízimas, seria mais complicado pois identificar quando for dízima não é simples
System.out.println((1f / 3f));
// Imprime 0.33333334 q não é dizima
Criado 28 de março de 2016
Ultima resposta 29 de mar. de 2016
Respostas 1
Participantes 2
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo