2016-09-02 2 views
-3

Ich versuche, die insgesamt zwei gegebene Anzahl Arrays für meine Aufgabe zu finden, aber ich halte erhalte die Fehlermeldung:Kann nicht Standort der impliziten Besetzung finden

Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)

int[] firstarray= new int[4] { 4, 20, 60, 150 }; 
double[] secondarray= new double[4] { 5, 40.5, 65.4, 145.98 }; 

firstarray[0] = 20; 
secondarray[1] = 5; 

int totalarrays = firstarray[0] + secondarray[1]; 
Console.WriteLine("Total of the two arrays " + totalarrays); 
+1

'int totalarays = firstarray [0] + secondarray [1];' Sie tun Mathe mit einem Doppel und versuchen, es in ganzzahligen 'totalarays' zu enthalten. –

+1

Haben Sie den Fehler gelesen? –

+0

'var totalarrays = firstarray [0] + secondarray [1];' (beachten Sie bitte, 'var') und lassen Sie den Compiler den Typ für Sie herausfinden. –

Antwort

1
int totalarays = firstarray[0] + secondarray[1]; 

sollte

double totalarays = firstarray[0] + secondarray[1]; 

Ein int + sein ein double in einem double landet. Wenn dies nicht der Fall wäre, würden Sie die Genauigkeit der double im Ergebnis verlieren - es gibt keine implizite Möglichkeit, dies zu tun.

Wenn Sie die double in eine int konvertieren müssen, gibt es many different techniques je nach Ihren Anforderungen.

0

Wenn Sie

tun

Sie versuchen, ein Double (secondarray [1]) und ein int (firstarray [0]) hinzuzufügen, und konvertieren Sie das Ergebnis in ein int. Dies könnte die Genauigkeit verlieren, weil der Dezimalteil des doppelten Werts durch Abrunden entfernt wird. Darüber warnt der Compiler Sie.

Um anzuzeigen, dass Sie mit ihm zufrieden sind, können Sie schreiben:

int totalarays = firstarray[0] + (int)secondarray[1]; 

Dies ist explizit der doppelte Wert in einem int Umwandlung mit Hilfe eines Gusses.

0

Dies sollte funktionieren.

Verwandte Themen