Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Al Museo Alfa Romeo di Arese, Nutanix ha riunito clienti, partner ed esperti per .Next On Tour Italia e per mostrare come l’infrastruttura hybrid multicloud possa diventare il fondamento dell’innovazione, con una piattaforma capace di unificare applicazioni tradizionali, moderne architetture cloud-native e nuovi scenari basati sull’intelligenza artificiale
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti
Il Lenovo LOQ 15i Gen 10 (15IRX10) offre prestazioni convincenti grazie al Core i7-13650HX e alla RTX 5060 Laptop a 100W, mantenendo un prezzo competitivo tra 1100 e 1300 euro. Costruzione solida, buon display e ampia espandibilità lo rendono una scelta equilibrata per chi cerca un notebook gaming accessibile ma moderno.
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-11-2012, 23:21   #1
Fiore!
Member
 
L'Avatar di Fiore!
 
Iscritto dal: Nov 2012
Messaggi: 61
[VB.NET]Convertire punti in virgole e viceversa

So già che è una classica domanda, che con una ricerca su Google si trova facile, ma io non riesco...
Premetto che se la tastiera è USA, ITA o ITA 142 non deve fare la differenza.
Per convertire, il comando più semplice che ho trovato è Replace:
Codice:
variabile = Replace(variabile, ".", ",")
Se digito 1.1 il programma lo legge 11, se digito 1,1 viene letto giusto.
Con questa invece:
Codice:
variabile = Replace(variabile, ",", ".")
1,1 diventa 11 perché mi ha messo il punto al posto della virgola e quindi annullato.
In pratica il primo codice non funziona, e non capisco il perché, forse arriva troppo tardi perché il punto è già sparito?
Se così come posso intercettarlo?
Pure sul risultato, ho provato a rimpiazzare il punto con la virgola (le risposte decimali le da col punto), ma senza esito.
Cosa sbaglio? Qualcuno mi può aiutare?

Ps. Sto usando la console, non Windows Form.

Grazie a chi risponderà.
Fiore! è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2012, 23:56   #2
Gaiden80
Member
 
Iscritto dal: Jun 2012
Città: Roma
Messaggi: 115
variabile che tipo è? String o numero?
Gaiden80 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2012, 05:43   #3
Fiore!
Member
 
L'Avatar di Fiore!
 
Iscritto dal: Nov 2012
Messaggi: 61
Quote:
Originariamente inviato da Gaiden80 Guarda i messaggi
variabile che tipo è? String o numero?
Numero, per poter fare i calcoli: Single, così risparmio pure qualche Byte.
Fiore! è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2012, 05:46   #4
AllerITA
Member
 
L'Avatar di AllerITA
 
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
Forse non stai tenendo conto che il sistema operativo prede in considerazione già all'avvio il formato di ora data e numero che sono accettati della lingua del paese che quando lo installiamo impostiamo.
E' buona regola lasciare che questo sistema funzioni senza ambiguità.
Nel tuo caso vuoi inserire un numero che abbia la formattazione 1000000,1 e anche 1000000.1
Ora questo a prima vista sembra lecito.
ma se andiamo a cercare nelle impostazioni ad esempio italiane del formato di numero,
troviamo che per la formattazione numerica il punto separa le posizioni nel numero delle cifre migliaia milioni e via dicendo
per comodità di lettura
Quindi si può scrivere normalmente 1.000.000,1 e questo numero viene letto come un milione dal programma senza problemi.
Se ora mettiamo il caso volessimo usare una formattazione diversa cioè usare il numero con il formato inglese ad esempio
avremmo, se non ricordo male, 1,000,000.1 , ma possiamo addirittura personalizzare la formattazione.
Però senza utilizzare un formato ambiguo come questo 1.000.000.1 che non rende chiaro cosa significhi.
Tieni presente che nei fogli di calcolo, database ecc. si può formattare il numero utilizzando le impostazioni della lingua corrente.
Però se la tua è pura curiosità
puoi convertire la stringa in inserimento di WriteLine nel formato italiano con la "," al posto del "." per farla accettare dal programma come numero.
E poi puoi trasformarla con ToString e sostituire nuovamente la "," col "." oppure il "." con la ",", ma tieni presente che non è corretto il modo di affrontare il problema.
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb

Ultima modifica di AllerITA : 28-11-2012 alle 05:52.
AllerITA è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2012, 07:54   #5
Fiore!
Member
 
L'Avatar di Fiore!
 
Iscritto dal: Nov 2012
Messaggi: 61
In pratica vorrei che nell'input, sia se viene scritto un punto o una virgola, il programma me lo leggesse come una virgola, oppure che impedisse l'inserimento del punto, ma questo sarebbe scomodo per chi scrive.
Il separatore migliaia attualmente non c'è, poi i numeri non saranno mai troppo grandi, senò non avrei usato Single.
Fiore! è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2012, 11:20   #6
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 21891
Quote:
Originariamente inviato da Fiore! Guarda i messaggi
In pratica vorrei che nell'input, sia se viene scritto un punto o una virgola, il programma me lo leggesse come una virgola, oppure che impedisse l'inserimento del punto, ma questo sarebbe scomodo per chi scrive.
Il separatore migliaia attualmente non c'è, poi i numeri non saranno mai troppo grandi, senò non avrei usato Single.
semplicemente il replace devi farlo su una stringa e non su un numero quindi prima sostituisci e dopo converti
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2012, 21:32   #7
Fiore!
Member
 
L'Avatar di Fiore!
 
Iscritto dal: Nov 2012
Messaggi: 61
Quote:
Originariamente inviato da !fazz Guarda i messaggi
semplicemente il replace devi farlo su una stringa e non su un numero quindi prima sostituisci e dopo converti
Il problema, è che una volta dato l'input, esempio 1.1, lui lo legge 11, quindi il punto da rimpiazzare non c'è.
Forse inserendo il dato come testo, poi convertendolo in numero, funzionerebbe, ma non è così che deve fare...

Prendiamo come esempio la calcolatrice di Windows, sia se digito il punto o la virgola, lui lo legge come una virgola...
...non riesco ad andarne fuori.
Fiore! è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2012, 23:04   #8
Gaiden80
Member
 
Iscritto dal: Jun 2012
Città: Roma
Messaggi: 115
l'input deve essere sempre come stringa. A seconda della lingua con cui è configurato (puoi anche gestirle dalla configurazione internazionale del sistema operativo) il decimale è il punto o la virgola. Quindi in teoria se digiti 1.1 o 1,1 hai una stringa, sostituisci il . con la , o viceversa e poi converti in single. La digitazione arriverà da una casella di testo immagino, quindi hai necessariamente una stringa.
Del resto tutti i linguaggi leggono come input sempre stringhe e char e poi convertono. Anche la calcolatrice di windows, legge carattere e verifica se sono validi per comporre l'operazione.
Quando converti con .net puoi utilizzare il parse ed utilizzare l'oggetto numberformat per definire lo standard.
Gaiden80 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2012, 00:07   #9
Fiore!
Member
 
L'Avatar di Fiore!
 
Iscritto dal: Nov 2012
Messaggi: 61
Quote:
Originariamente inviato da Gaiden80 Guarda i messaggi
l'input deve essere sempre come stringa. A seconda della lingua con cui è configurato (puoi anche gestirle dalla configurazione internazionale del sistema operativo) il decimale è il punto o la virgola. Quindi in teoria se digiti 1.1 o 1,1 hai una stringa, sostituisci il . con la , o viceversa e poi converti in single. La digitazione arriverà da una casella di testo immagino, quindi hai necessariamente una stringa.
Del resto tutti i linguaggi leggono come input sempre stringhe e char e poi convertono. Anche la calcolatrice di windows, legge carattere e verifica se sono validi per comporre l'operazione.
Quando converti con .net puoi utilizzare il parse ed utilizzare l'oggetto numberformat per definire lo standard.
Devo dire che facendo così funziona (grazie), per quel che riguarda l'input, il risultato però, anche se lo converto in stringa, mi rimane sempre col punto, non capisco perché...

Ps. Mi fai cortesemente un piccolo esempio del parse?
Fiore! è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2012, 20:14   #10
Gaiden80
Member
 
Iscritto dal: Jun 2012
Città: Roma
Messaggi: 115
se la casella di testo è txtNumero

float n=float.parse(txtNumero.Text);
se vuoi usare la globalitation

float n = float.Parse(txtNumero.Text, CultureInfo.GetCultureInfo("it-IT").NumberFormat);

cosi puoi gestire il formato in base alla nazione.
Gaiden80 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud Nutanix: innovazione, semplicità e IA al ...
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il n...
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
Il telescopio spaziale James Webb ha ril...
ESA: budget di 22,32 miliardi di euro pe...
Il rover Yutu-2 della missione cinese Ch...
Le pubblicità del frigorifero man...
Perso il segnale della sonda spaziale NA...
Una Xiaomi SU7 ha finito il suo parchegg...
Decine di associazioni contro i data cen...
Dongfeng batte Toyota e BYD: il suo moto...
Oltre NVIDIA: i server di Red Hat AI acc...
Grok diventa navigatore Tesla: Musk prom...
Broadcom/VMware e Siemens continuano a l...
NIO lancia il brand Firefly anche in Gre...
Trump annuncia una legge nazionale sull'...
Intel Arc B770: la scheda appare in un d...
Le Big dell'AI e Linux Foundation insiem...
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: 05:00.


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