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
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
1)
2)codice:doulbe numero = 36.620; Math.round(numero * 2) /2;
3) sapendo quanti decimali ci sono e dove vuoi arrivare dovrebbe essere sufficiente fare arrotondamenti successivi in un ciclo forcodice: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
@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.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
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.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
funziona, grazie mille ragazzi ma vorrei sapere il ragionamento che c'è dietro
il primo quesito è risolto nel secondo, ho un problema, ragazzi perchè sto utilizzando talend, e talend non prende gli array di java
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.
@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.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
grazie mille davvero alhazred