Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Conversione
giovedì 22 novembre 2007 - 16.44
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cispolo.ppl
Profilo
| Senior Member
261
messaggi | Data Invio:
gio 22 nov 2007 - 16:44
Salve, qualcuno sa come convertire da decimali a gradi e viceversa in vb?
Massimo
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
ven 23 nov 2007 - 07:57
Cioè?
Per esempio a quanti gradi corrisponde una pendenza del 50%, o cos'altro?
Un rapporto tra grandezze omogenee in un angolo (arcoseno)?
Prova a spiegare meglio cosa vuoi fare, magari si trova la soluzione.
cispolo.ppl
Profilo
| Senior Member
261
messaggi | Data Invio:
ven 23 nov 2007 - 16:33
esempio: 1.5 ore corrispondono a 1 : 30 ore
Massimo
Teech
Profilo
| Expert
573
messaggi | Data Invio:
ven 23 nov 2007 - 16:45
Non è una conversione ma un formato di visualizzazione.
Una Data ed un'ora sono comunque numeri...
controlla questo link
http://msdn2.microsoft.com/it-it/library/59bz1f0h
(VS.80).aspx
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
ven 23 nov 2007 - 17:35
Mah....non so perchè ti riferivi ai gradi, visto che qui si parla di minuti. Comunque per risolvere il tuo esempio, dovresti poter usare due semplici funzioni come queste:
''' <summary>
''' Vuole in input un valore in formato numerico e lo restituisce numerico, trasformato in sessagesimale (solo la parte frazionaria)
''' </summary>
Private Function ConvertiDecimaleInSessagesimale(ByVal DaConvertire As Double) As Double
Dim ParteIntera As Double = Math.Floor(DaConvertire)
Dim ParteFrazionaria As Double = DaConvertire - ParteIntera
ParteFrazionaria = Math.Round(ParteFrazionaria * 60) / 100
Return ParteIntera + ParteFrazionaria
End Function
''' <summary>
''' Vuole in input un valore stringa che rappresenta un intero e un decimale, separati da virgola. tipo 'x,y' es.: '10,2' '9874,056'
''' Il separatore può essere impostato anche con un carattere diverso da virgola.
''' Restituisce una stringa che rappresenta il valore in formato sessagesimale (solo per la parte frazionaria)
''' </summary>
Private Function ConvertiDecimaleInSessagesimale(ByVal DaConvertire As String, Optional ByVal Separatore As Char = ","c) As String
Dim ParteIntera As Integer = CInt(DaConvertire.Split(Separatore)(0))
Dim ParteFrazionaria As Double = Double.Parse(DaConvertire.Split(Separatore)(1))
ParteFrazionaria = Math.Round(ParteFrazionaria * 60) / 100
Return ParteIntera.ToString & ":" & ParteFrazionaria.ToString
End Function
Una accetta un valore stringa e l'altra un valore numerico. Occhio che non sono stato a mettere anche i controlli di errore! Spero funzionino bene, sono state fatte un po' di fretta. Fammi sapere. Ciao.
cispolo.ppl
Profilo
| Senior Member
261
messaggi | Data Invio:
ven 23 nov 2007 - 21:05
Grazie per l'aiuto...ma avrei un piccola domanda. Se metto 12.5 lo trasforma in 12:3, mi aspetto 12:30. Come posso sistemarlo?
Massimo
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
sab 24 nov 2007 - 08:17
Modifica la riga aggiungendo un PadRight, così:
Return ParteIntera.ToString & ":" & ParteFrazionaria.ToString.PadRight(2, "0"c)
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !