Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-05-2010, 21: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, 22: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 22:24.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2010, 23: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 23:23.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2010, 19: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, 01: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, 09: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, 11: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, 11: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, 12: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, 12: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, 13: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, 22: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, 09: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, 17: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, 18: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


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Prosegue lo sviluppo del telescopio spaz...
28 astronauti cinesi hanno condotto un'e...
Dal Padiglione Italia al mercato globale...
POCO M8: display AMOLED luminoso, batter...
ECOVACS, tante novità a Las Vegas...
Caso Galaxy Ring difettoso: Samsung chiu...
Targa e assicurazione per monopattini el...
AI Cloud Protect: la soluzione di Check ...
Nuovo spettacolare video del razzo spazi...
Hisense presenta a CES 2026 il display M...
XPeng P7+ è pronta per l'Europa: ...
IKEA nuove lampade Matter annunciate al ...
Il telescopio Hubble potrebbe andare dis...
Hisense introduce RGB MiniLED evo (a qua...
Deumidificatore De'Longhi in offerta su ...
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: 22:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v
Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.