változók típuskonverziója

Fórumok

Sziasztok,

Íme egy egyszerű kód:


public class AvarageNumber {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int num1 = 10;
        int num2 = 22;
        int num3 = 45;
      
        float ave = (num1 + num2 + num3)/3;
      
        System.out.println( "Első szám értéke : " + num1 );
        System.out.println( "A második szám értéke : " + num2 );
        System.out.println( "A harmadik szám értéke: " + num3);
        System.out.println( "A számok átlaga : " + ave);
    }
}

Az ave értéke 25.0 lesz. Nem kellene autómatikusan típuskonverziót végrehajtania a java -nak? Akkor kapok helyes értéket, ha a num[1-3] típusát szintén float -ként adom meg. Ellenben ez így nem mindig szerencsés, mert nembiztos, hogy tudod előre, hogy milyen műveleteket fogsz végrehajtani egy változón. Felvilágosítani erről valaki egy kicsit? Kb. két napja foglalkozok Java -val, szóval csak finoman a kritikákkal :)

Hozzászólások

ha két egész típusú számot ( num1+num2+num3 is egész típusú meg a 3 is egész típusú) osztasz egymással akkor annak az eredménye is egész típusú lesz. ám ha valamelyik már lebegőpontos akkor az eredményed már lebegőpontos lesz, és megkapod a várt értéket.
két megoldás:
1. float ave= (num1+num2+num3)/3.0f;
2.
float ave= (num1+num2+num3);
ave/=3;