Ayuda con errores q antes no sucedian
En este codigo hay una series de errores, los cuales en aplicaciones anteriores utilisando casi el mismo codigo no salian errores; por favor si alguien me pudiera ayudar.
import java.io.*;
import java.lang.Math.*;
public class Sumatoria
{
public static void main (String[] args) throws IOException
{
float x, i;
int j, k[];
k = new int[100];
BufferedReader input = new BufferedReader(new InputStreamReader (System.in));
System.out.print("Introduce el valor de la base x =");
x = Double.parseDouble(input.readLine());
System.out.print("Introduce el valor de i =");
j = Double.parseDouble(input.readLine());
for (i=1;i<=j;i++)
{
k[i]=Math.pow(x,i);
}
for (i=1;i<=j;i++)
{
k[i]=k[i]+k[i+1];
}
System.out.print("La Sumatoria x^i = " + k[i]);
}
}
/*--------------------Configuration: Sumatoria - j2sdk1.4.2_02 <Default> - <Default>--------------------
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:17: possible loss of precision
found : double
required: float
x = Double.parseDouble(input.readLine());
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:19: possible loss of precision
found : double
required: int
j = Double.parseDouble(input.readLine());
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:24: possible loss of precision
found : float
required: int
k[i]=Math.pow(x,i);
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:24: possible loss of precision
found : double
required: int
k[i]=Math.pow(x,i);
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:29: possible loss of precision
found : float
required: int
k[i]=k[i]+k[i+1];
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:29: possible loss of precision
found : float
required: int
k[i]=k[i]+k[i+1];
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:29: possible loss of precision
found : float
required: int
k[i]=k[i]+k[i+1];
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:32: possible loss of precision
found : float
required: int
System.out.print("La Sumatoria x^i = " + k[i]);
^
8 errors
Process completed.
*/
Gracias de antemano
import java.io.*;
import java.lang.Math.*;
public class Sumatoria
{
public static void main (String[] args) throws IOException
{
float x, i;
int j, k[];
k = new int[100];
BufferedReader input = new BufferedReader(new InputStreamReader (System.in));
System.out.print("Introduce el valor de la base x =");
x = Double.parseDouble(input.readLine());
System.out.print("Introduce el valor de i =");
j = Double.parseDouble(input.readLine());
for (i=1;i<=j;i++)
{
k[i]=Math.pow(x,i);
}
for (i=1;i<=j;i++)
{
k[i]=k[i]+k[i+1];
}
System.out.print("La Sumatoria x^i = " + k[i]);
}
}
/*--------------------Configuration: Sumatoria - j2sdk1.4.2_02 <Default> - <Default>--------------------
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:17: possible loss of precision
found : double
required: float
x = Double.parseDouble(input.readLine());
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:19: possible loss of precision
found : double
required: int
j = Double.parseDouble(input.readLine());
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:24: possible loss of precision
found : float
required: int
k[i]=Math.pow(x,i);
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:24: possible loss of precision
found : double
required: int
k[i]=Math.pow(x,i);
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:29: possible loss of precision
found : float
required: int
k[i]=k[i]+k[i+1];
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:29: possible loss of precision
found : float
required: int
k[i]=k[i]+k[i+1];
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:29: possible loss of precision
found : float
required: int
k[i]=k[i]+k[i+1];
^
D:3e70IV CicloJavaProgramasawtSumatoriasrcSumatoria.java:32: possible loss of precision
found : float
required: int
System.out.print("La Sumatoria x^i = " + k[i]);
^
8 errors
Process completed.
*/
Gracias de antemano
Efectivamente, se produce una pérdida de precisión.
x es un int y le estas asignado un double y
j es un float y le estas asignad otro double
cambia el tipo de estas varialbes a double o cambia
x = Double.parseDouble(input.readLine());
j = Double.parseDouble(input.readLine());
por
x = Double.parseInt(input.readLine());
j = Double.parseFloat(input.readLine());
o realiza un casting.
El resto de errores son consecuencia de esto.
Saludos
x es un int y le estas asignado un double y
j es un float y le estas asignad otro double
cambia el tipo de estas varialbes a double o cambia
x = Double.parseDouble(input.readLine());
j = Double.parseDouble(input.readLine());
por
x = Double.parseInt(input.readLine());
j = Double.parseFloat(input.readLine());
o realiza un casting.
El resto de errores son consecuencia de esto.
Saludos