Warum hast du dich so leicht gemacht? Ein Memorandum, damit niemand so süchtig nach Zeitverschwendung ist wie ich
Ich habe erwartet, dass das Folgende selbstverständlich 0,25 sein wird ...
var rate: Double = 0.0
rate = 1 / 4
Log.v("TEST:", "rate:${rate}")
Ich erhalte den folgenden Kompilierungsfehler.
Type mismatch: inferred type is Int but Double was expected
Google Übersetzer: "Typ stimmt nicht überein: Der geschätzte Typ ist Int, aber Double ist erforderlich."
Wai weiß das! !! !!
Hmm? Ah Σ (゚ д ゚;) ,,,, Ist das so? Da es sich um eine Berechnung von Int und Int handelt, war die Beurteilung der Art des Berechnungsergebnisses Int ... Ich habe nicht bemerkt warum. .. ..
Also die Lösung. Einer oder beide können mit Double abgeglichen werden.
val num1 = 1.toDouble()
val num2 = 4.toDouble()
val aaa = num1 / num2
Log.v("TEST:", "rate = ${aaa}")
V/TEST:: rate = 0.25
Ja. Das Ergebnis war wie erwartet. Ich kann wegen meiner Krankheit nicht aufhören zu weinen.
Apropos ...
val aaa = (1/4).toDouble()
Log.v("TEST:", "rate = ${aaa}")
V/TEST:: rate = 0.0
Dadurch sieht es so aus, als ob das Berechnungsergebnis in Int vorliegt und in Double konvertiert wird. Das erwartete Ergebnis wird nicht zurückgegeben. Beachten Sie, dass wenn es "10/4" ist, es "2.0" ist.
Dann haben Sie ein gutes Kotlin-Leben!
Recommended Posts