Oppure

Loading
30/10/14 18:06
Ercules76
Il problema è da decimale a sessagesimale, se ho nel textbox4 il valore, riferendoci all'esempio di prima, 34.55 avere nei textbox1-2-3 i numeri 34 24 56, ripeto tutto dinamicamente, quindi già mettendo il primo numero, in questo caso il 3, vedrò nei textbox una conversione.
aaa
30/10/14 19:01
Ok ... ma come devi fare i calcoli in quel caso ?
30/10/14 20:05
Ercules76
Postato originariamente da nessuno:
Ok ... ma come devi fare i calcoli in quel caso ?

Scusa ho scritto una cazzata prima, 34° 24' 56" sono 34,4155, sarebbe (56/60) il risultato si somma ai primi, che si dividono per 60, il risultato si somma ai gradi, quindi (56/60=0,93) poi ((0,93+24)/60=0,4155 quindi (34+0,4155)=34,4155 decimali, viceversa si prende la parte prima della virgola quindi 34 (i gradi), si moltiplica per 60 la parte decimale (0,4155*60)=24,93 [24'] e ancora la parte decimale (0,93*60)=55,8 arrotondato per eccesso [56"] ed ecco i nostri 34° 24' 56"
aaa
01/11/14 10:56
Ercules76
Ho risolto, mi dispiace soltanto non esserci arrivato da solo, ma googolando

  public struct dms
        {
            public decimal gradi, minuti, secondi;
        }

        private dms DecimalToDegMinSec(decimal decimalNumber)
        {
            dms myDMS = new dms();
            myDMS.gradi = Convert.ToInt32(Math.Truncate(decimalNumber));
            GradBox.Text = myDMS.gradi.ToString();
            myDMS.minuti = Convert.ToInt32(Math.Truncate((decimalNumber - myDMS.gradi) * 60));
            MinutiBox.Text = myDMS.minuti.ToString();
            myDMS.secondi = Convert.ToInt32((((decimalNumber - myDMS.gradi) * 60) - myDMS.minuti) * 60);
            SecBox.Text = myDMS.secondi.ToString();
            return myDMS;
        }
aaa