я получаю эту ошибку:C# - Что случилось с моим преобразованием из double в int?
"Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)"
Код:
Console.WriteLine("ISBN-Prüfziffer berechnen");
Console.WriteLine("=========================");
Console.WriteLine();
Console.Write("ISBN-Nummer ohne Prüfziffer: ");
string ISBNstring = Console.ReadLine();
int ISBN = Convert.ToInt32(ISBNstring);
int PZ;
int i;
double x = Math.Pow(3, (i + 1) % 2);
int y = (int)x;
for (i = 1; i <= 12; i++)
{
PZ = ((10-(PZ + ISBN * x) % 10) % 10);
}
Console.WriteLine(PZ);
Console.ReadLine();
Вот новый код:
Console.WriteLine("ISBN-Prüfziffer berechnen");
Console.WriteLine("=========================");
Console.WriteLine();
Console.Write("ISBN-Nummer ohne Prüfziffer: ");
string ISBNstring = Console.ReadLine();
long ISBN = Convert.ToInt32(ISBNstring);
long ISBN1 = (Int64)ISBN;
int PZ = 0;
int i;
for (i = 1; i <= 12; i++)
{
double x = Math.Pow(3, (i + 1) % 2);
long y = (double)x;
PZ = ((10 - (PZ + ISBN * y) % 10) % 10);
}
Console.WriteLine(PZ);
Console.ReadLine();
Но я все еще получаю ошибку преобразования для двойной длиной и long to int ...
Пятно на, удалено мой ответ –
@ Брадофф, просто небольшое дополнение к ответу. Похоже, что вычисление x (и y соответственно) должно происходить внутри цикла, или? – elgonzo
Спасибо! Ошибка исчезла. Но по какой-то причине код не работает, как я думал. – Bradolf