Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Attenti a Poco F7: può essere il best buy del 2025. Recensione
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Poco F7 5G, smartphone che punta molto sulle prestazioni grazie al processore Snapdragon 8s Gen 4 e a un display AMOLED da ben 6,83 pollici. La casa cinese mantiene la tradizione della serie F offrendo specifiche tecniche di alto livello a un prezzo competitivo, con una batteria generosissima da 6500 mAh e ricarica rapida a 90W che possono fare la differenza per gli utenti più esigenti.
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-05-2010, 20:29   #1
maro89
Junior Member
 
Iscritto dal: May 2010
Messaggi: 25
[java]tipi primitivi

Salve ragazzi,

chiedo a voi per non aspettare di chiedere al mio professore universitario e poi so che voi mi dareste una risposta migliore e più articolata =).

ho sviluppato un piccola applicazione in java con un interfaccia grafica molto semplice (qualche jtextfield e un jbutton) che svolge una funzione di elaborazione di dati matematici per restituirne degli altri.

dato che molti metodi implementati usano funzioni trigonometriche ho dei risultati con molti numeri dopo la virgola.
Come faccio a restringere il numero di decimali dopo la virgola?tipo a 3 o 4

Grazie per il vostro aiuto!
maro89 è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2010, 21:07   #2
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Puoi usare la System.out.printf. Guarda queste due prove:

Codice:
float f = 21.4563f;
System.out.printf("21.4563 diventa: %.2f", f);
output: 21.4563 diventa: 21,46

Codice:
float f = 21.4563f;		
System.out.printf("21.4563 diventa: %.1f", f);
output: 21.4563 diventa: 21,5

EDIT: scusa mi sono accorto dopo che non hai specificato in fase di stampa e che inoltre usi un'interfaccia a finestre

Ultima modifica di ndakota : 28-05-2010 alle 21:24.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2010, 22:06   #3
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Ti basta moltiplicare (castizzando a int) e dividere (ritornando a double) il numero per (10^n) dove n è il numero di cifra da lasciare dopo la virgola.
Alternativamente, per evitare eventuali perdite di dati dovuti a possibili narrow, puoi utilizzare il metodo statico format di String, con le stesse modalità indicateti nel post precedente.

Ultima modifica di nuovoUtente86 : 28-05-2010 alle 22:23.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 18:49   #4
maro89
Junior Member
 
Iscritto dal: May 2010
Messaggi: 25
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Ti basta moltiplicare (castizzando a int) e dividere (ritornando a double) il numero per (10^n) dove n è il numero di cifra da lasciare dopo la virgola.
Alternativamente, per evitare eventuali perdite di dati dovuti a possibili narrow, puoi utilizzare il metodo statico format di String, con le stesse modalità indicateti nel post precedente.
risolto come hai detto tu grazie.

in pratica ho fatto

double pippo=7.9999999999
pippo=pippo*100; //pippo=799.9999
pippo=(int)pippo; //pippo=799
pippo=(double)pippo*100 //pippo=7.99
maro89 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 00:10   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quote:
(castizzando a int)
Quote:
(ritornando a double)
Uccidetemi, qui e subito, che il mio corpo giaccia a fianco del cadavere dell'italiano.

Possano i Lancieri dell'Accademia della Crusca fare scempio di coloro che perpetrarono il putribondo assassinio.

Addio!
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 08:19   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Be', a me "ritornando a double" ha fatto sorridere quando l'ho letta, suonava un po' come il titolo di un nuovo film (sulla falsa riga di "Ritorno al futuro")

Condivido invece il "disgusto" nei confronti del verbo "castizzare"...
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 10:47   #7
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Probabilmente sarebbe stato più freddo ed elegante scrivere 3 righe di codice, ma la persona avrebbe fatto, probabilmente, un "copia e incolla" poco significativo, senza realmente cogliere il senso di quelle istruzioni.
Ancora avrei potuto indicargli di fare una "conversione esplicita dal tipo double al tipo int", ma ne sarebbe risultata una frase stilisticamente impeccabile ma parimenti inefficace ai fini della discussione.
Del resto credo questo sia una sezione del forum dove si tratta di programmazione e non la purezza della lingua italiana.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 10:59   #8
maro89
Junior Member
 
Iscritto dal: May 2010
Messaggi: 25
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Probabilmente sarebbe stato più freddo ed elegante scrivere 3 righe di codice, ma la persona avrebbe fatto, probabilmente, un "copia e incolla" poco significativo, senza realmente cogliere il senso di quelle istruzioni.
Ancora avrei potuto indicargli di fare una "conversione esplicita dal tipo double al tipo int", ma ne sarebbe risultata una frase stilisticamente impeccabile ma parimenti inefficace ai fini della discussione.
Del resto credo questo sia una sezione del forum dove si tratta di programmazione e non la purezza della lingua italiana.
Hai perfettamente ragione.

Ci ho messo un po a capire cosa dovessi fare ma almeno ho capito e molto probabilmente se mi avessi messo 3 righe di codice le avrei copiate!

Comunque meglio un italiano storto che si capisca cosa bisogni fare che un italiano perfetto incompressibile dal punto di vista della programmazione.
maro89 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 11:43   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
@nuovoUtente86: mea culpa, avrei dovuto specificarlo in calce al post, ma si faceva solo un po' di facile ironia, tanto per sorridere un po'; questo senza voler togliere nulla alla bontà & utilità del tuo intervento nei confronti dell'utente.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 11:56   #10
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Ci mancherebbe, l' ironia ci deve essere e va benissimo. Va però anche detto che, spesso, risulta più utile l' utilizzo di termini tecnici storpiati nella nostra lingua, ma di utilizzo tecnico diffuso, piuttosto che parole fedelmente tradotte ma dalla scarsa contestualizzazione informatica.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 12:41   #11
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Dai, su, non nascondiamoci dietro a un dito. L'aulico non interessa a nessuno ma che almeno sembri italiano!

Uno può usare termini stranieri in una frase, c'è una regola ad hoc secondo cui quei la parola o il verbo non devono essere declinati o coniugati.

Non dobbiamo necessariamente usare il termine "conversione" (sebbene non sia poi così male, sopratutto se consideriamo i termini "faldone" o "direttorio"). Puoi quindi "fare un cast a double" o fare "dei cast a double" (ma non dei casts).

Non possiamo inventarci delle parole - salvo certe figure metaforiche - ed è facile capire il perchè: la soluzione proposta è a rischio di rounderrorizzazione e quindi non può essere usata nei casi in cui la decimalificazione del flottante produca un valore non boundato.

Cosa si capisce? Si capisce che devo prenotare una visita dal logopedista.

Circa il "ritornare" è un fatto che i verbi di moto siano intransitivi: non ci si può fare molto. Intransitivi significa che non hanno la capacità di trasferire un significato ad un oggetto. Per i verbi di moto l'oggetto è un luogo.

Il caso del "ritornare a double" è particolare. L'essere intrasitivo comporta la necessità che esista una particella tra verbo ed oggetto. La particella c'è (a) ma l'oggetto non è un luogo.

Potremmo dire "ritornare a double" se "double" fosse l'argomento di un discorso, da intendersi come luogo figurato. "... e ritorniamo al [problema del/discorso del] double".

Per un programmatore tutto questo dovrebbe essere affascinante: è una delle tante grammatiche da conoscere.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2010, 21:01   #12
maro89
Junior Member
 
Iscritto dal: May 2010
Messaggi: 25
anche se non è in argomento con il titolo ne con la discussione che si è venuta a creare sul linguaggio italiano-programmazione ve lo chiedo qui per evitare di aprire un altro topic

ho creato un jdialog e ho inserito un jbutton il quale in teoria dovrebbe chiudere la finestra senza dover andare a cliccare il tastino x in alto.

nel codice ho provato le seguenti implementazioni:

Codice:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
 }
con il codice implementato sopra il jbutton non fa niente e quindi la jdialog non si chiude

Codice:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        System.exit(0);
 }
con il codice implementato sopra il jbutton mi chiude tutto il programma e non solo la jdialog ma proprio tutto.

ho provato a cercare altre soluzioni ma non le ho trovate

ora mi resta sperare che qualcuno di voi mi possa dare una mano per risolvere questo problema

grazie
maro89 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2010, 08:57   #13
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da maro89 Guarda i messaggi
ho creato un jdialog e ho inserito un jbutton il quale in teoria dovrebbe chiudere la finestra senza dover andare a cliccare il tastino x in alto.

nel codice ho provato le seguenti implementazioni:
Codice:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
 }
Il metodo setDefaultCloseOperation serve appunto per determinare il comportamento standard di chiusura che la dialog terrà quando viene generato e processato il WindowEvent caraterrizzato dall' ID noto come WINDOW_CLOSING.
Direttamente dai javadoc di JDialog:
Quote:
Sets the operation that will happen by default when the user initiates a "close" on this dialog. You must specify one of the following choices:

* DO_NOTHING_ON_CLOSE (defined in WindowConstants): Don't do anything; require the program to handle the operation in the windowClosing method of a registered WindowListener object.
* HIDE_ON_CLOSE (defined in WindowConstants): Automatically hide the dialog after invoking any registered WindowListener objects.
* DISPOSE_ON_CLOSE (defined in WindowConstants): Automatically hide and dispose the dialog after invoking any registered WindowListener objects.

The value is set to HIDE_ON_CLOSE by default

Quote:
con il codice implementato sopra il jbutton non fa niente e quindi la jdialog non si chiude
Il motivo dovrebbe ora esserti chiaro: con il codice sopra non comandi alla dialog di chiudersi, le dici invece che comportamento dovrà tenere quando dovrà chiudersi.

Quote:
Codice:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        System.exit(0);
 }
con il codice implementato sopra il jbutton mi chiude tutto il programma e non solo la jdialog ma proprio tutto.
Questo perchè la chiamata a System.exit() "uccide" la virtual machine.
Anche di questo si trova traccia nei javadoc.

Ora, ci sono diversi modi per impostare un bottone che deve chiudere la finestra in cui risiede.
Presumendo che 'dialog' sia l'istanza della tua JDialog e che 'btClose' sia l'istanza del JButton contenuto in essa, un metodo è quello di invocare setVisible(false) per nasconderla e dispose() per "distruggerla" (vengono rilasciate le risorse native neccessarie per la sua proiezione grafica):
Codice:
btClose.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        dialog.setVisible(false);
        dialog.dispose();
    }
});
Con il sistema qui sopra però forzi la "distruzione" della dialog, e non è detto che questo comportamento sia desiderabile (perchè, ad esempio, avevi impostato una diversa politica di chiusura della dialog con setDefaultCloseOperation, e vorresti che venisse rispettata anche alla pressione del tuo bottone).
Si potrebbe quindi fare in modo che alla pressione del bottone venga generato quello specifico evento che scatena la chiusura della dialog, secondo la sua specifica politica di chiusura. E' un WindowEvent caratterizzato da due oggetti: la "sorgente" dell'evento è la dialog stessa che deve chiudersi, e l'"identificatore" dell'evento è la costante WindowEvent.WINDOW_CLOSING. L'evento va generato e infilato nella coda degli eventi, in modo che venga processato appena possibile:
Codice:
btClose.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        WindowEvent closing = new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING)
        dialog.dispatchEvent(closing);
    }
});
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2010, 16:23   #14
maro89
Junior Member
 
Iscritto dal: May 2010
Messaggi: 25
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Il metodo setDefaultCloseOperation serve appunto per determinare il comportamento standard di chiusura che la dialog terrà quando viene generato e processato il WindowEvent caraterrizzato dall' ID noto come WINDOW_CLOSING.
Direttamente dai javadoc di JDialog:




Il motivo dovrebbe ora esserti chiaro: con il codice sopra non comandi alla dialog di chiudersi, le dici invece che comportamento dovrà tenere quando dovrà chiudersi.


Questo perchè la chiamata a System.exit() "uccide" la virtual machine.
Anche di questo si trova traccia nei javadoc.

Ora, ci sono diversi modi per impostare un bottone che deve chiudere la finestra in cui risiede.
Presumendo che 'dialog' sia l'istanza della tua JDialog e che 'btClose' sia l'istanza del JButton contenuto in essa, un metodo è quello di invocare setVisible(false) per nasconderla e dispose() per "distruggerla" (vengono rilasciate le risorse native neccessarie per la sua proiezione grafica):
Codice:
btClose.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        dialog.setVisible(false);
        dialog.dispose();
    }
});
Con il sistema qui sopra però forzi la "distruzione" della dialog, e non è detto che questo comportamento sia desiderabile (perchè, ad esempio, avevi impostato una diversa politica di chiusura della dialog con setDefaultCloseOperation, e vorresti che venisse rispettata anche alla pressione del tuo bottone).
Si potrebbe quindi fare in modo che alla pressione del bottone venga generato quello specifico evento che scatena la chiusura della dialog, secondo la sua specifica politica di chiusura. E' un WindowEvent caratterizzato da due oggetti: la "sorgente" dell'evento è la dialog stessa che deve chiudersi, e l'"identificatore" dell'evento è la costante WindowEvent.WINDOW_CLOSING. L'evento va generato e infilato nella coda degli eventi, in modo che venga processato appena possibile:
Codice:
btClose.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        WindowEvent closing = new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING)
        dialog.dispatchEvent(closing);
    }
});
Grazie, la tua esauriente spiegazione mi ha fatto reso la vita più semplice!
ero disperato non volevo togliere il pulsante che mi chiudesse la finestra ma non sapevo come riuscire a fargli chiudere la finestra.

ho cercato all'interno del javadoc ma si vede che non mi sono spinto troppo dentro da riuscire a capire il tutto

capitemi sono al primo anno di ingegneria informatica!=)
maro89 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2010, 17:32   #15
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da maro89 Guarda i messaggi
ho cercato all'interno del javadoc ma si vede che non mi sono spinto troppo dentro da riuscire a capire il tutto
I javadoc si impara ad aprezzarli e conoscerli con il tempo, logicamente.
Però questi sono solo la documentazione delle API; forse all'inizio è più pratico documentarsi con i Sun Java Tutorial.

A questa pagina trovi il "really big index": se lo scorri rapidamente (senza farti venire la tendinite, la pagina è lunga) vedrai che contiene una bella quantità di informazioni su moltissimi aspetti della tecnologia Java: tienteli sempre sotto mano
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
ChatGPT ora ti ricorda di fare una pausa...
Ultraleggero, compatto, prezzo super di ...
Eureka J15 Ultra scende ancora e la conc...
Processore Ryzen con 16 core e doppia V-...
Potenziare il proprio PC non è ma...
Robot top con autosvuotamento e senza sa...
Perplexity e i "trucchetti" pe...
Samsung Galaxy Watch 7: uno crolla a 159...
Tecnologie da fantascienza: l’iPad adess...
Tuo figlio vuole uno smartphone? Non pri...
Amazon top 7 bestseller, aggiornata: feb...
TSMC produrrà a 2 nm anche in Ari...
Tesla vuole Musk a tutti i costi: propos...
Spotify aumenta i prezzi: da 10,99 a 11,...
Prezzi folli su AliExpress con Choice Da...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v