Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema cast da long a double

    salve ragazzi ho il seguente problema


    codice:
    	
    
    public static  double getMyDoubleValue(long l1 , long l2 ){ 		 		
    
    double result = (l2 -l1) / l2
    
    return result ;
     
    }
    in questo caso il risultato di result è 0.0

    codice:
    	
    
    public static  double getMyDoubleValue(long l1 , long l2 ){ 		 		
    
    double tempResult = l2 -l1
    double result = tempResult / l2
    
    return result ;
     
    }
    in questo caso mi da un risultato diverso da 0 tipo 0.000371

    perchè si presenta questa differenza nei risultati

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Perchè non hai effettuato un cast.

    codice:
    double result = (l2 -l1) / l2
    La prima parte dell'espressione (l2 - l1) è data da due variabili di tipo long. Il risultato sarà anch'esso un long. l2 è un long, quindi anche il risultato della divisione sarà di tipo long. A questo punto la "frittata" è già fatta. Assegni il valore long (0) ad una variabile double.

    Devi effettuare un cast esplicito ad uno dei due operandi affichè il risultato parziale delle espressioni sia di tipo double:

    codice:
    double result = (l2 - l1) / (double) l2;
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.