variável do tipo long

6 respostas
G

se eu faço int a = 3 * 3 * 5 * 5 * 7 * 7 * 9 * 9 * 11 * 11 * 12 * 12, o resultado é [telefone removido] agora se eu faço long a = 3 * 3 * 5 * 5 * 7 * 7 * 9 * 9 * 11 * 11 * 12 * 12 dá 1.040449536E11

Como corrijo isso?
Teoricamente uma variável do tipo long não deveria armazenar mais algarismos ?
não entendo…

6 Respostas

P

este resultado:1.040449536E11

eh 1.040449536 elevado a 11

G

Negócio é q eu criei o seguinte programa:

import java.util.Scanner;
class programa4 {
    public static void main(String[] args) {
	Scanner pegaEntrada = new Scanner(System.in);
	calculoPi f1 = new calculoPi();
	System.out.println("Digite o número de algarismos distintos para o cálculo de pi");
	int n = pegaEntrada.nextInt();
	System.out.println("Na próxima linha vai o cálculo de pi com " + n + "  algarismos distintos:");
	System.out.println(f1.calculoPi(n));
    }
}

class calculoPi {
public static double calculoPi(double algarismos) {
    int inicialNumerador = 4;
    int inicialDenominador = 3;
    int numerador = 16;
    int denominador = 9;
    int c = 1;
    int d = 1;

    for (int contador = 2; contador <= algarismos; contador++) {
	inicialNumerador = inicialNumerador + 2; 
	inicialDenominador = inicialDenominador + 2;
	c = inicialNumerador*inicialNumerador;
	d = inicialDenominador*inicialDenominador;
	numerador = numerador * c;
	denominador = denominador * d;
   }

    double ConvNumerador = (double) numerador;
    double ConvDenominador = (double) denominador;
    double divisao = ConvNumerador/ConvDenominador;
    algarismos = 8 * divisao;
    return algarismos;
}
}

Se eu coloco pra especificar com 9 algarismos, começa a dar pau
daí troquei as variáveis int por long
aí o programa começa a dar erros do tipo q falei (1.040449536E11), a partir de 6 algarismos…
Se alguém souber o q fiz de errado…

samuelhenriquerj

tenta usar isto:

System.out.println(Long.toOctalString(variavel_long));
G

A varíavel que está sendo impressa ao final é do tipo Double, tentei o comando selecionado como:

System.out.println(Double.toOctalString(variavel_double));
apresentou o seguinte erro:

programa5.java:11: cannot find symbol

symbol  : method toOctalString(double)

location: class java.lang.Double

System.out.println(Double.toOctalString(variavel_double));

ps: a variável “variavel_double” está definida…
Vou pesquisar sobre o uso dessa função…

samuelhenriquerj

este método não existe:

Double.toOctalString(variavel_double);

pq vc não usa long ao invés de double? já q vc tem q trabalhar com números grandes.

G

pq no final do programa eu tenho uma divisão e preciso de ponto flutuante…

Criado 12 de outubro de 2007
Ultima resposta 14 de out. de 2007
Respostas 6
Participantes 3