Witam - na studiach mam pierwszy kontakt z C# no i aby nie być ostatnim gamoniem skorzystałem z kursu na tej stronce. bardzo fajny jednakże mam mały problem, niby robie tak samo jak jest w instrukcji a pojawia mi sie komunikat :
Error 1 Cannot implicitly convert type 'double' to 'string'
Error 2 ; expected
i podkreśla ten fragment
labelWynik.Text = (Oblicz.PrzeliczPLNEUR(Oblicz.Kwota, Oblicz.EUR))ToString();
czy moge liczyć na waszą pomoc ?
oczywiście program dalej nie działa, a w kursie działa.
Odpowiedzi: 6
O ile pamiętam z zajęć programowania - kropka to przecinek, a przecinek to kropka. I trzeba było się dobrze pilnować na każdym kroku :P
nie do końca rozumiem, chodzi o to ze z "palca w kalkulatorze wpisuje wartości z przecinkiem bądz kropką ?
no właśnie ze ja tam wprowadzam liczby całkowite,
a moze powiniennem dodać jakąś linijke odnośnie przypadków dziesiętnych? rozwiąze to problem ?
Teraz wszystko jasne. W oknie programu, wpisałeś do textboxa liczbę zmiennoprzecinkową w nieprawidłowym formacie. Pewnie wprowadziłeś kropkę zamiast przecinka (albo na odwrót).
błąd to :
Nieprawidłowy format ciągu wejściowego
format exception was unhandled,
wielkość liter racja - ale tam w programie mam dużą Convert.toDouble. wiec to jest Ok.
DZIĘKUJE ruszyło, ale pojawił sie nowy błąd pokreśla mi:
Oblicz.EUR = convert.toDouble(kursEUR.Text);
pytanie dlaczego ?
cały program = moze ktoś sobie go wklei i zobaczy czy działa ?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace A
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string[] skroty = { "PLN", "USD", "EUR", "GBP" };
class Waluty
{
public double Kwota;
public double EUR;
public double GBP;
public double USD;
public double PrzeliczPLNEUR(double wej, double wyj)
{
double wynik = wej / wyj;
wynik = Math.Round(wynik, 2);
return wynik;
}
}
private void KonwertujWaluty()
{
Waluty Oblicz = new Waluty();
Oblicz.EUR = Convert.ToDouble(kursEUR.Text); // konwersja stringa to double
Oblicz.USD = Convert.ToDouble(kursUSD.Text);
Oblicz.GBP = Convert.ToDouble(kursGBP.Text);
Oblicz.Kwota = Convert.ToDouble( textBox5.Text);
if ((ListaZ.Text == skroty[0]) && (listaNa.Text == skroty[1]))
{
labelWynik.Text = (Oblicz.PrzeliczPLNEUR(Oblicz.Kwota, Oblicz.EUR)).ToString();
labelWynik.Text += " euro";
}
else if ((ListaZ.Text == "PLN") && (listaNa.Text == "USD"))
{
labelWynik.Text = (Oblicz.PrzeliczPLNEUR(Oblicz.Kwota, Oblicz.USD)).ToString();
labelWynik.Text += " $";
}
else if ((ListaZ.Text == "PLN") && (listaNa.Text == "GBP"))
{
labelWynik.Text = (Oblicz.PrzeliczPLNEUR(Oblicz.Kwota, Oblicz.GBP)).ToString();
labelWynik.Text += " funtów";
}
else if ((ListaZ.Text == "EUR") && (listaNa.Text == "PLN"))
{
//labelWynik.Text = (Oblicz.PrzeliczPLNEUR(Oblicz.Kwota, Convert.ToDouble(kursPLN.Text))ToString();
labelWynik.Text += " zł";
}
else
{
// Jeseli nie wybrano waluty
labelWynik.Text = "wybierz waluty!";
}
}
private void buttonPrzelicz_Click(object sender, EventArgs e)
{
labelWaluta.Text = ListaZ.Text;
KonwertujWaluty();
buttonPrzelicz.Text = "Przeliczono";
buttonPrzelicz.Font = new Font(buttonPrzelicz.Font, FontStyle.Bold);
}
private void ListaZ_SelectedIndexChanged(object sender, EventArgs e)
{
if (listaNa.Items.Count < 4)
{
listaNa.Items.Clear();
listaNa.Items.Add("PLN");
listaNa.Items.Add("EUR");
listaNa.Items.Add("USD");
listaNa.Items.Add("GBP");
}
switch (ListaZ.SelectedIndex)
{
case 0:
listaNa.Items.RemoveAt(0);
break;
case 1:
listaNa.Items.RemoveAt(1);
break;
case 2:
listaNa.Items.RemoveAt(2);
break;
case 3:
listaNa.Items.RemoveAt(3);
break;
}
textBox5.Enabled = true;
}
private void textBox5_TextChanged(object sender, EventArgs e)
{
buttonPrzelicz.Visible = true;
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "Kursy - Podaj...";
}
private void oProgramieToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 OProgramieForm;
OProgramieForm = new Form2(this);
OProgramieForm.ShowDialog();
}
}
}
Nie masz kropki przed ToString(). Powinno być:
[code]labelWynik.Text = (Oblicz.PrzeliczPLNEUR(Oblicz.Kwota, Oblicz.EUR)).ToString();[/code]