Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525

    [java] arrotondamento su double...

    codice:
    public void setInteroSup(double z){
    		String Ris = new String("");
    		//double z = 501.8; -> oki 502
    		//z = 501;          -> oki 501
    		
    		z = 1/2; 
    			
    		Ris =  Double.toString(z);
    		char item = '.';
    		int position = Ris.lastIndexOf(item);  //restituisce -1 se non trova il punto
    		String appo =  Ris.substring(position+1,Ris.length());
    
            if(Integer.parseInt(appo) > 0)
            z =  Double.parseDouble(Ris.substring(0,position)) + 1;//arrotondo
            this.interosup=z;
               
    	}
    Il metodo arrotonda all'intero successivo.
    Il problema č che se passo un valore che risulta da una divisione, non funziona... (z=1/2=0,5) dovrebbe restituire 1, invece 0,0
    Come fare????

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ma usare Math.ceil fa brutto?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525
    Se z=0.5 funziona correttamente, restituendo 1.
    Ho la necessitā di assegnare a z il valore di una divisione, e in qsto caso se z=1/2 z assume il valore 0.0 come pure interosup.
    Come fare?
    Thxxx


    public void setInteroSup(double z){
    String Ris = new String("");
    z=1/2;
    this.setZ(z);
    Ris = Double.toString(z);
    Ris.replace('.',',');
    z = Double.parseDouble(Ris);
    double temp=Math.ceil(z);
    this.interosup=temp;
    }

  4. #4
    Originariamente inviato da Simoxxx
    Se z=0.5 funziona correttamente, restituendo 1.
    Ho la necessitā di assegnare a z il valore di una divisione, e in qsto caso se z=1/2 z assume il valore 0.0 come pure interosup.
    Come fare?
    Thxxx


    public void setInteroSup(double z){
    String Ris = new String("");
    z=1/2;
    this.setZ(z);
    Ris = Double.toString(z);
    Ris.replace('.',',');
    z = Double.parseDouble(Ris);
    double temp=Math.ceil(z);
    this.interosup=temp;
    }
    :master:
    cioe' tu passi 1/2 ..

    prova a passare(double)1/(double)2
    oppure 1.00/2.00 :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525

    funziaaaaa

    grazie,davvero, nn sai qto tempo c'ho perso...č che in giro nn ho trovato molti esempi...
    Thxxx

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 © 2024 vBulletin Solutions, Inc. All rights reserved.