men... 3/8 tum blir ju 0,95 cm (eller 9,53 mm)
1 3/8 ska räknas som 1+(3/8) vilket blir 11/8 eller 1,375 det kan du ju räkna ut först. Sedan 11/8 * 25,4 = 34,93 mm
eller tänker jag helt fel?
3 svar · 1 003 visningar · startad av saw
Jag försöker att bygga en liten lathund för att kunna förvandla tum till mm.
Så¨här har jag gjort
const double intTum = 25.4;
private double helaTum = 0;
private double delTum = 0;
private double delarTum = 0;
private double tum = 0;
// helaTum, delTum och delatTum hämtar sina värden ifrån textrutor.
// att det är uppdelat så här beror på t ex 1 3/8 där
// 1 =helaTum 3 =delTum 8 delarTum
tum = intTum ;
// jag förenklar koden här
double resultat = ((delarTum / tum) * delTum) + (helaTum * tum);
//sen visar jag det
i = string.Format("{0:N0}.{1:N0}", double.Parse(i.Split(',')[0]), double.Parse(i.Split(',')[1]));
Problemet är om det inte finns någon heltum utan t ex 3/8 så visas resultatet som 0,94 (alldeles galet).
Om det därimot är 1 3/8 då tycker jag att det ser bättre ut 26.34
Vore tacksam om någon förståndig kunde ge mig en vink... :OO
men... 3/8 tum blir ju 0,95 cm (eller 9,53 mm)
1 3/8 ska räknas som 1+(3/8) vilket blir 11/8 eller 1,375 det kan du ju räkna ut först. Sedan 11/8 * 25,4 = 34,93 mm
eller tänker jag helt fel?
Din beräkning är helt enkelt felaktig. Du har råkat invertera (tum / delarTum). Hade det stått (tum / delarTum) * delTum hade koden funkat.
Prova:
double resultat = (delTum / delarTum + helaTum) * tum;
delTum / delarTum + helaTum ges rätt beräkningsordning som standard, du får osynliga parenteser runt delTum / delarTum. Lägg till det heltalsdelen så får du tum uttryckt som decimaltal. 1 3/8 = 1.375. Sedan multiplicerar du med omvandlingsfaktorn.
Tack nitro2k01 det var ju så jag hadde tänkt men fick inte fram det.
Avslutningsvis så skulle jag vilja be er titta på detta. Jag har en radioknapp
där jag kan välja antal decimaler. Där har jag följande:
string i = resultat.ToString();
try
{
i = string.Format("{0:N0}.{1:N0}", double.Parse(i.Split(',')[0]), double.Parse(i.Split(',')[1]));
}
catch
{
i = string.Format("{0:N0}.{1:N0}", double.Parse(i.Split('.')[0]), double.Parse(i.Split('.')[1]));
}
totalt = i;
Detta är för att jag skall kunna della upp decimalerna i tusental osv t ex
1.001 209 301.
Jag är lite misstänksam mot min kod. Den verkar inte fungera excakt.
Vad tror ni? :stud