Calcul du volume de la sphère Java


J'ai une classe Java et je suis perplexe sur ce problème. Nous devons faire un calculateur de volume. Vous entrez le diamètre d'une sphère, et le programme crache le volume. Cela fonctionne bien avec des nombres entiers mais chaque fois que je lui lance une décimale, il se bloque. Je suppose que cela a à voir avec la précision de la variable

double sphereDiam;
double sphereRadius;
double sphereVolume;

System.out.println("Enter the diamater of a sphere:");
sphereDiam = keyboard.nextInt();
sphereRadius = (sphereDiam / 2.0);
sphereVolume = ( 4.0 / 3.0 ) * Math.PI * Math.pow( sphereRadius, 3 );
System.out.println("The volume is: " + sphereVolume);

Donc, comme je l'ai dit si je mets un nombre entier, cela fonctionne bien. Mais j'ai mis 25.4 et il se bloque sur moi.

Author: brimborium, 2013-01-25

2 answers

C'est parce que keyboard.nextInt() est en attente d'une int, pas float ou double. Vous pouvez le changer en:

float sphereDiam;
double sphereRadius;
double sphereVolume;

System.out.println("Enter the diamater of a sphere:");
sphereDiam = keyboard.nextFloat();
sphereRadius = (sphereDiam / 2.0);
sphereVolume = ( 4.0 / 3.0 ) * Math.PI * Math.pow( sphereRadius, 3 );
System.out.println("The volume is: " + sphereVolume);

nextFloat() et nextDouble() captera également les types int et les convertira automatiquement au type souhaité.

 9
Author: Marc Baumbach, 2013-01-25 16:35:26
double sphereDiam;
double sphereRadius;
double sphereVolume;
System.out.println("Enter the diameter of a sphere:");
sphereDiam = keyboard.nextDouble();
sphereRadius = (sphereDiam / 2.0);
sphereVolume = ( 4.0 / 3.0 ) * Math.PI * Math.pow( sphereRadius, 3 );
System.out.println("");
System.out.println("The volume is: " + sphereVolume);
 1
Author: Adumuah Dowuona, 2015-10-16 19:50:01