Den nya matematiken.


Sitter frustrerad med examensarbetet när matematikens hemligheter uppenbaras.
Försöker använda en variation av LaPlace’s rule of succession vid beslutsfattning, när kompilatorn avslöjar det hela för mig.

(double)((oldsuccess+1)/(oldBluffs+2))*(usingPlay.getSuccessRate()/100)
Där enligt spårutskrifter oldsuccess=0, oldBluffs=0 och (usingPlay.getSuccessRate()/100)=1.0
Vilket borde ge:
1/2*1 = 0.5
Men likt förbannat får jag resultat 0.0.
Misstänkte först att Java gjorde någon form av typomvandling till int, men resultatet redovisas i decimalform.

Update:

Okej, min känsla var uppenbarligen korrekt, behövde typomvandla ALL data till divisionsoperatorn, vilket troligtvis tyder på att man vid operatorimplementationen gjort olika operatoröverlagringar för olika typer istället för en som alltid omvandlar indatat till tex: float.

Man lär sig något varje dag.

Annonser

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s


%d bloggare gillar detta: