4126
Domande tecniche / Re: E' normale che Round non arrotondi?
« il: 10 Febbraio 2014, 20:24:28 »
Scusate ma abbandono il campo ho internet che non mi funziona Ciao
19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.
quello che credo vuott ti stesse dicendo è che....
...il round entra in funzione solo quando....
fsurfing: santo e benedetto !
quello che credo vuott ti stesse dicendo è che se nel tuo codice scrivi:Codice: [Seleziona]il round entra in funzione solo quando l' espressione nell' IF è vera , ovvero quando il device è stampante altrimenti il round non viene eseguito e quindi non viene eseguito l' arrotondamentoIf sDevice = "Stampante" Then Paint.Font.Size = Round(Paint.Font.Size * F_GAMBERETTO_STAMPA, -2)
Print Paint.Font.Size
Message(Paint.Font.Size)
ma... non capisco cosa potrei dirti.... se intendi verificare, poni delle istruzioni per la verifica. Cosa posso dirti ?
Una cosa non capisco se io faccio Paint.Font.Size = Round(Paint.Font.Size * 1.3441, -2) poi non devo controllare il valore restituito da Paint.Font.Size per sapere se la funzione “Funziona”
Non capisco se è una domanda o un'affermazione.
Ho dato un'occhiata al codice che hai allegato, i cui risultati in console sono coerenti con quelli visibili nell'immagine che hai allegato.
Il tuo codice mostra 5 risultati in rispettivi MessageBox. Al riguardo faccio notare che all'interno della Sub DisegnoX:
* il valore mostrato nel primo Message non è soggetto alla funzione Round(), in quanto non previsto;
* il valore mostrato nel secondo Message non è soggetto alla funzione Round(), in quanto non previsto;
* il valore mostrato nel terzo Message non è soggetto alla funzione Round(), perché non v'è passaggio nella riga precedente con l'istruzione IF ;
* il valore mostrato nel quarto Message non è soggetto alla funzione Round(), perché non v'è passaggio nella riga precedente con l'istruzione IF .
Come premessa rinvio ad una essenziale, ma efficace ed esaustiva, spiegazione scritta da md9327 sulla funzione Round():
http://www.gambas-it.org/smf/index.php?topic=1865.msg20789#msg20789
Se io scrivo un semplice codice (di cui riporto appresso la parte che ci interessa) rifacendomi al tuo caso:Codice: gambas [Seleziona]......
Paint.Font.Size = 12
Print Paint.Font.Size * 1.3441
' Viene chiesto alla funzione "Round()" di arrotondare il secondo numero decimale:
Print Round(Paint.Font.Size * 1.3441, -2)
End
in console ottengo questi risultati:
16,1292 senza funzione Round();
16,13 con la funzione Round().
Quindi funziona.
Tra me e i benemeriti ...
Per dare una risposta semplice alla domanda del titolo della discussione mi piacerebbe che Gambas possa diventare per Linux quello che Visual Basic è stato per Windows, uno strumento semplice ed efficace alla portata di molti che permette di realizzare applicazioni distribuibili senza difficoltà e un sistema semplice per l'automazione di software complessi come Libreoffice al pari di VBA per MS Office.
per curiosità, con quali delle cose che ho detto non ti trovi d'accordo?
Aggiungerei un nuovo fronte di sviluppo:
Prima o poi uscirà anche Ubuntu touch su tablet e smartphone
Perchè non usare anche lì gambas?
Mi piacerebbe sapere cosa ne pensa Minisini, magari anche della questione di gambas su libreoffice..
..ed infatti:
" Fixed in revision #6138.
Regards,
Benoît Minisini "