Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    8

    arrotondamenti di numeri

    Ciao a tutti, mi potete dire il codice java per arrotondare

    • 32.620 in 32.5 ho provato con math round/ceil/flor ma nulla
    • 32.62 dividere i decimali ossia deve uscire 32 e 62
    • 32.62145 in 32.6215 e poi in 32.622


    Grazie a tutti in anticipo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    1)
    codice:
    doulbe numero = 36.620;
    Math.round(numero * 2) /2;
    2)
    codice:
    double numero = 36.62;
    String[] arr=String.valueOf(numero).split("\\.");
    int[] intArr=new int[2];
    intArr[0]=Integer.parseInt(arr[0]); // 36
    intArr[1]=Integer.parseInt(arr[1]); // 62
    3) sapendo quanti decimali ci sono e dove vuoi arrivare dovrebbe essere sufficiente fare arrotondamenti successivi in un ciclo for

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    @errico: 32.620 in 32.5 è un arrotondamento un po' particolare, praticamente è un troncamento "alla mezza unità". Alhazred ti ha risposto correttamente (se quello che lui e io abbiamo pensato è quello che volevi).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da andbin Visualizza il messaggio
    @Alhazred:
    codice:
    double numero = 36.62;
    String[] arr=String.valueOf(numero).split("\\.");
    non farmi vedere queste cose prima di pranzo ...
    Eh, stavo andando a mangiare e volevo finire di rispondere... funziona no?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Eh, stavo andando a mangiare e volevo finire di rispondere... funziona no?
    Sì funziona (non è strettamente necessario il secondo array intArr). Ho tolto quell'appunto subito dopo perché inizialmente mi pareva 'na roba brutta. Ma poi pensandoci, se lui vuoi avere proprio "62" o 62 per la parte decimale .... beh, in effetti non c'è molto altro che si può fare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    8
    funziona, grazie mille ragazzi ma vorrei sapere il ragionamento che c'è dietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    8
    il primo quesito è risolto nel secondo, ho un problema, ragazzi perchè sto utilizzando talend, e talend non prende gli array di java

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da errico Visualizza il messaggio
    funziona, grazie mille ragazzi ma vorrei sapere il ragionamento che c'è dietro
    Parti da 36.62, lo moltiplichi per 2 ed hai 73.24, ora round ti tronca i decimali e ti restituisce 73.
    A questo punto fai 73 / 2 e ti viene 36.5, dividendo un numero intero per 2 hai necessariamente 0 (se parti da un numero pari) oppure 5 (se parti da un dispari) come decimale.

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    @errico: è abbastanza facile da capire e pensare in modo generalizzato:

    Se fai:
    Math.round(numero * 10) / 10
    tronchi ad 1 cifra decimale

    Se fai:
    Math.round(numero * 1) / 1
    (gli 1 li puoi anche togliere, ovviamente) tronchi a zero cifre decimali, alla unità, insomma.

    Se fai:
    Math.round(numero * 2) / 2
    tronchi a mezza unità
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    8
    grazie mille davvero alhazred

Tag per questa discussione

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.