Convertera till double
Jag har fått ett datatype-problem:
<code>
public double Fran;
public enum Tonart
{
C = 10,
Ciss = 10.5,
D = 11,
Diss = 11.5,
E = 12,
F = 13,
Fiss = 13.5,
G = 14,
Giss = 14.5,
A = 15,
Aiss = 15.5,
H = 16
}
</code>
Error:
<code>
E:\Music_Translater 2.0\Music_Translater 2.0\Class1.cs(16): Cannot implicitly convert type 'double' to 'int'
</code>
Jag har inte någonstans deklarerat att jag skall ha Tonart som int.
Hur ändrar jag detta?
Svara
Sv: Convertera till double
När du kör en enum är allt int, som default. och du kan inte ha något annat heller.
Mvh Johan
Svara
Sv: Convertera till double
Hur kan jag komma förbi detta då?
Jag behöver alltså deklarera för double.
[REDIGERAT]
Jag försöker på ett annat sätt
public double C = 10;
public double Ciss = 10.5;
public double D = 11;
public double Diss = 11.5;
public double E = 12;
//osv
Nu gör jag lite uträkningar, får fram ett svar och vill konvertera om detta:
<code>
klart = Music_Translater.Class1.OmvandTransport(TotalKey)//TotalKey innehåller en siffra.
//i min class-fil
public static string OmvandTransport(double iValue)
{
string klart = "";
try
{
switch(iValue)
{
case 10:
klart = "C";
break;
case 10.5:
klart = "C#";
break;
</code>
..här får jag följande fel:
<code>
E:\Music_Translater 2.0\Music_Translater 2.0\Class1.cs(35): A value of an integral type expected
</code>
..och så pekar den på iValue.
Några förslag??
Svara
Sv: Convertera till double
Du kan ju använda dig av klass variabler istället...
typ
<code>
public class Tonart
{
public static double C= 10;
public static double Ciss = 10.5;
public static double D = 11;
public static double Diss = 11.5;
public static double E = 12;
public static double F = 13;
public static double Fiss = 13.5;
public static double G = 14;
public static double Giss = 14.5;
public static double A = 15;
public static double Aiss = 15.5;
public static double H = 16;
private Tonart(){}
}
</code>
Svara
Sv: Convertera till double
Angående din switch så kan du inte använda doubles i en switch sats. gissar att du bara kan använda tal av integral typ (?) och strängar...
Du får kanske använda en if - else if konstruktion istället
Svara
Sv: Convertera till double
Jag märkte det, jag gjorde om inmatningen till string så kom jag förbi det.
Tack för hjälp
Svara
Sv: Convertera till double
Kan du inte deklarera enumen så här
<code>
public enum Tonart
{
C = 100,
Ciss = 105,
D = 110,
Diss = 115,
E = 120,
F = 130,
Fiss = 135,
G = 140,
Giss = 145,
A = 150,
Aiss = 155,
H = 160
}
</code>
och sedan göra en division med 10 i de fall de behövs.
//
Janne
Svara
Sv: Convertera till double
Tack Jan, men jag gjorde på ett annat sätt.
Jag deklarerade som public string och fick in värdena.
Det kanske kodmässigt inte ser så snyggt ut, men fungerar kanonbra.
Svara