Oppure

Loading
27/03/18 9:22
Mikelius
Postato originariamente da Carlo:

Confermo, che ci sono problemi sul programma, conversioni, vorrei comunicare all'autore alcune prove riferite alla conversione delle temperature.

alla riga: Dim Temperatura() As String = {"Temperatura", "Fahrenheit-32", "Celsius-1,8", "Kelvin-273,15"}

se inserisco il valore 0 per i gradi celsius, invece del valore 1,8.

la conversione celsius kelvin è corretta, ma sbagliano le altre

Un problema sta nella routine:

If Nome <> "Temperatura" Then
rs.Text = Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";)) * (c1 / c2)
Else
If cbx2.Text = "Fahrenheit" Then
rs.Text = (Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";)) * (c1)) + c2
Else
Dim app As Double = Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";))
If Convert.ToDouble(app) < -273.15 Then
MsgBox("IN QUESTO CASO IL VALORE DI TEMPERATURA CELSIUS NON PUO' ESSERE < -273,15!";)
Else
rs.Text = c2 + Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";))
End If
End If
End If

controlla la riga: rs.Text = c2 + Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";))

nel calcolo non può mancare il parametro c1!



il metodo Text.Trim.Replace(".", ".";) se non sbaglio cambia i "." con i "."? ha senso???
aaa
27/03/18 9:59
Ultimo
Postato originariamente da Mikelius:

Postato originariamente da Carlo:

Confermo, che ci sono problemi sul programma, conversioni, vorrei comunicare all'autore alcune prove riferite alla conversione delle temperature.

alla riga: Dim Temperatura() As String = {"Temperatura", "Fahrenheit-32", "Celsius-1,8", "Kelvin-273,15"}

se inserisco il valore 0 per i gradi celsius, invece del valore 1,8.

la conversione celsius kelvin è corretta, ma sbagliano le altre

Un problema sta nella routine:

If Nome <> "Temperatura" Then
rs.Text = Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";)) * (c1 / c2)
Else
If cbx2.Text = "Fahrenheit" Then
rs.Text = (Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";)) * (c1)) + c2
Else
Dim app As Double = Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";))
If Convert.ToDouble(app) < -273.15 Then
MsgBox("IN QUESTO CASO IL VALORE DI TEMPERATURA CELSIUS NON PUO' ESSERE < -273,15!";)
Else
rs.Text = c2 + Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";))
End If
End If
End If

controlla la riga: rs.Text = c2 + Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";))

nel calcolo non può mancare il parametro c1!



il metodo Text.Trim.Replace(".", ".";) se non sbaglio cambia i "." con i "."? ha senso???


Non ha senso infatti, è un errore di battitura
If ok Then GOTO Avanza else GOTO Inizia

27/03/18 10:51
Mikelius
l'errore di battitura potrebbe essere 1, massimo 2 volte.... è dappertutto così
aaa
27/03/18 12:13
Carlo
il metodo Text.Trim.Replace(".", ".";) se non sbaglio cambia i "." con i "."? ha senso???

non ha senso, non so se è farina del suo sacco, ma questa istruzione si usa così: Text.Trim.Replace(",", ".";)
e serve per fare in modo che l'input dell'utente sia accettato sia con la virgola decimale che con il punto decimale.
se l'utente scrive 10,1 diventa 10.1 se scrive 10.1 resta 10.1

Quello che ho notato, è che nelle variabili c1 e c2, ci sono caricati i coefficenti di conversione e nella riga:
rs.Text = c2 + Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ".";))
che fa il calcolo della conversione, manca il parametro c1.

Qui ci andrebbe una formuletta perché il rapporto tra Fahrenheit e celsius, non è lineare infatti 0 Celsius = 32 Fahreneit, 100 celsius = 212 Fahrenheit
Ultima modifica effettuata da Carlo 27/03/18 12:15
in programmazione tutto è permesso
27/03/18 12:53
Mikelius
Si, infatti nel mio programma ho usato
(valueInput.Text.ToString()).Replace('.', ',');


(uso al momento la notazione italiana con la virgola, ma è semplicissimo cambiarla)

Domandavo banalmente se ci fosse un motivo legata al metodo Trim. Mi avete dato conferma che non c'è.
aaa
28/03/18 0:18
Carlo
Scusa, risposta frettolosa, anche in questo caso è giusto:

Convert.ToDouble(tbxQty.Text.Trim.Replace(".", ",";))

Perché Convert.ToDouble, con l'impostazione Internazionale europea, si aspetta la virgola come separatore decimale.

Per quanto riguarda Trim, toglie gli eventuali spazi prima e dopo la stringa, in questo caso inutile ma non dannosa.

Sulla questione punti e virgole mi va di polemizzare un po', perché ci ritroviamo questi problemi a causa del rifiuto degli Stati Uniti d'America di passare al Sistema internazionale di unità di misura (S.I. leggi esse i), al pari di Liberia e Birmania, tale rifiuto è basato su motivi campanilistici, poiché il guazzabuglio di misure del Sistema imperiale, provengono da una sommatoria di sistemi arcaici, mentre le unità di misura dell'S.I., si ricavano da grandezze fisiche derivate come prodotto e rapporto di grandezze fisiche fondamentali.
it.wikipedia.org/wiki/…
Non sarebbe cosa grave se gli USA non avessero la NASA e scrivessero la quasi totalità dei sistemi operativi.
Sono arrivati a distruggere il Mars Climate Orbiter per colpa dei dati inviati dal motore in libbra-forza/secondi, mentre il team di navigazione si aspettava i newton/secondi dell'S.I.
it.wikipedia.org/wiki/…
per chi vuole approfondire:
spazio-tempo-luce-energia.it/…
Neanche dopo questo disastro la NASA ha provveduto ad adottare il Sistema internazionale di unità di misura:
forumastronautico.it/…
Anche l'inghilterra, paese molto conservatore, è passato al Sistema internazionale di unità di misura (S.I.), ma non mancano le difficoltà....
invitoallanatura.it/2012/sistema-metrico-o-sistema-imperiale-that-is-the-question/
:asd::asd::asd:
Ultima modifica effettuata da Carlo 28/03/18 5:16
in programmazione tutto è permesso
28/03/18 8:15
Polemizza pure per il resto ... ma lasciami la pinta .... :-)
28/03/18 9:37
Carlo
:asd::asd:

Non è perché noi Italiani usiamo l'S.I. non possiamo dire: "Barista!, un boccale di birra!"

:asd::asd:
in programmazione tutto è permesso