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

    continuazione esercizio arrotonda cifra

    Salve a tutti! Io ho un ploblema simile. Eccolo: Scrivete un metodo double arrotonda(double x, int cifre) che dati due parametri, uno double e uno int, restituisce il primo arrotondato ad un numero di cifre dopo la virgola pari al secondo. Ad esempio, arrotonda(1.32,1) deve restituire 1.3, arrotonda(1.5,0) deve restituire 2, arrotonda(1.238,2) deve restituire 1.24.

    Come potrei modificare il codice dato come soluzione all'altro esercizio simile, per farlo funzionare anche su questo?
    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: continuazione esercizio arrotonda cifra

    Originariamente inviato da framada84
    Scrivete un metodo double arrotonda(double x, int cifre) che dati due parametri, uno double e uno int, restituisce il primo arrotondato ad un numero di cifre dopo la virgola pari al secondo.
    Nel framework standard di Java non ci sono metodi appositi per arrotondare/troncare un valore floating point a N cifre decimali.

    Ma si può fare ovviamente. L'approccio classico è: moltiplicare il valore per una potenza di 10 (10^ncifre), arrotondare/troncare, quindi dividere per la stessa potenza di prima.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie mille, mi potrebbe dare una bozza di soluzione in codice?
    Grazie!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da framada84
    Grazie mille, mi potrebbe dare una bozza di soluzione in codice?
    Sono poche operazioni in croce .... e tutto quello che ti serve sta nella classe java.lang.Math, che offre vari metodi statici di utilità per le operazioni matematiche.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    In caso guarderò quella classe. Perchè comunque non posso usarla. Grazie mille!

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da framada84
    In caso guarderò quella classe. Perchè comunque non posso usarla.
    Tecnicamente si potrebbe fare anche senza usare nulla di Math. Se vuoi farlo generico cioè a N cifre decimali, le questioni sono 2: a) calcolare il fattore di moltiplicazione/divisione e b) arrotondare il numero.

    Per il punto a) bisogna calcolare una potenza di 10 e sai bene che si può fare con delle moltiplicazioni 10x10x10... essendo l'esponente arbitrario va fatto in un loop.
    Per il punto b) una volta avuto il numero moltiplicato del fattore, devi arrotondarlo per avere il numero senza decimali (poi da dividere). E si può fare, per averlo senza decimali basta fare un cast ad un tipo intero.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.