Java: Possible lossy conversion from double to int?

Guten Tag,

ich möchte ein Bild anzeigen, die Position dabei aber in einem double angeben. currentDrawing.x / y sind bereits double Werte. Weiß jemand, warum dieser Fehler aufkommt? Oder kann die Methode nur Integer annehmen? Vielen Dank schonmal!

public void startdraw(List world) {
        JPanel panel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                BufferedImage buffer = new BufferedImage(frame.getWidth(), frame.getHeight(), BufferedImage.TYPE_INT_ARGB);
                Graphics bufferGraphics = buffer.getGraphics();
                world.toFirst();
                while (world.getContent() != null) {
                    Block currentDrawing = (Block)world.getContent();
                    if (currentDrawing != null) {
                        bufferGraphics.drawImage(currentDrawing.texture, currentDrawing.x*50.0, currentDrawing.y*50.0, (int)50, (int)50, null);
                    }
                    world.next();
                }
                g.drawImage(buffer, 0, 0, null);
            }
        };


        frame.add(panel);
        frame.setVisible(true);
    } 
Bild zu Frage
Fehler, Java, Code, Programmiersprache, Swing, double, Integer, Java Swing
Taschenrechner programmieren mit C (Double und Nachkommastellen)

Ich hab angefangen einen Taschenrechner mit C zu programmieren und so sieht es bis jetzt aus


#include "stdlib.h"
#include "math.h"
#include "string.h"
#include "stdio.h"

int main(int argc, char *argv[])
{

int Zahl1;
int Zahl2;
int Gesamt;
int Merker;                                     
int Laenge;
int Stelle;


char Eingabe_Zahl1[100];                                     
char Eingabe_Zahl2[100];                                      
char Rechenzeichen[100];                              

ANFANG:                                                                                          

gets(Rechenzeichen);    

Merker = 0;

if (Rechenzeichen[0]=='+') Merker = 1;    

if (Rechenzeichen[0]=='-') Merker = 1;   

if (Rechenzeichen[0]=='*') Merker = 1;   

if (Rechenzeichen[0]=='/') Merker = 1;

if (Merker == 0) printf("Hier duerfen nur Rechenzeichen stehen!\n");                                  
if (Merker == 0) printf("\n");
if (Merker == 0) goto ANFANG;


gets(Eingabe_Zahl1);   

Laenge=strlen(Eingabe_Zahl1);

//printf("%d Zeichen\n", Laenge);

Stelle = 0 ;

PRUEF_ZAHL1:

Merker = 0 ;

if (Eingabe_Zahl1[Stelle]== '0') Merker = 1;    

if (Eingabe_Zahl1[Stelle]== '1') Merker = 1;   

if (Eingabe_Zahl1[Stelle]== '2') Merker = 1;   

if (Eingabe_Zahl1[Stelle]== '3') Merker = 1;

if (Eingabe_Zahl1[Stelle]== '4') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '5') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '6') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '7') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '8') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '9') Merker = 1; 

if (Merker == 0) printf("Hier duerfen nur Zahlen stehen!\n");
if (Merker == 0) printf("\n");
if (Merker == 0) goto ANFANG;           

Stelle=Stelle +1;
if (Laenge != Stelle) goto PRUEF_ZAHL1;

printf("Bitte geben Sie die zweite Zahl ein   : ");       
gets(Eingabe_Zahl2);                                          

Laenge=strlen(Eingabe_Zahl2);

//printf("%d Zeichen\n", Laenge);

Stelle = 0 ;

PRUEF_ZAHL2:

Merker = 0 ;

if (Eingabe_Zahl2[Stelle]== '0') Merker = 1;    

if (Eingabe_Zahl2[Stelle]== '1') Merker = 1;   

if (Eingabe_Zahl2[Stelle]== '2') Merker = 1;   

if (Eingabe_Zahl2[Stelle]== '3') Merker = 1;

if (Eingabe_Zahl2[Stelle]== '4') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '5') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '6') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '7') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '8') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '9') Merker = 1; 

if (Merker == 0) printf("Hier duerfen nur Zahlen stehen!\n");
if (Merker == 0) printf("\n");
if (Merker == 0) goto ANFANG;           

Stelle=Stelle+1;
if (Laenge != Stelle) goto PRUEF_ZAHL2;

Zahl1=atoi(Eingabe_Zahl1);                                    
Zahl2=atoi(Eingabe_Zahl2);                                    

if (Rechenzeichen[0]=='+') Gesamt = Zahl1 + Zahl2;    

if (Rechenzeichen[0]=='-') Gesamt = Zahl1 - Zahl2;   

if (Rechenzeichen[0]=='*') Gesamt = Zahl1 * Zahl2;   

if (Rechenzeichen[0]=='/') Gesamt = Zahl1 / Zahl2;

printf("Das Ergebnis lautet                   : %d\n" ,Gesamt);
printf("\n");           

goto ANFANG;                            

Ich weiß goto und atoi und sowas ist doof aber darum geht es jetzt nicht.
WEnn man bei diesem Rechner die Zahl 2147483647 eingibt und dann +1 rechnet
kommt - 2147483647 raus.
Man macht das anscheind mit double aber irgendwie verteh ich das nicht und außerdem kann dieser Rechner keine Kommazahlen berechnen.
Wäre nett wenn jemand der das versteht mir helfen könnte.
DAnke

Computer, programmieren, Taschenrechner, C (Programmiersprache), double, nachkommastellen

Meistgelesene Fragen zum Thema Double