

[C#] konverzia stringu na float
ako prekonvertovat retazec na realne cislo ak sa v retazci nachadzaju aj neciselne udaje
toto:
float cena = float.Parse("1000,90 Sk");
mi vyhodi chybu:
Input string was not in a correct format.
Já C# neznám, ani názvy funkcí, ale kazdopádně to takhle "jednoduse" nepujde a o oddeleni "SK" se budes muset postarat sám (a připadne i o "," pokud je vyžadována tečka) a to jinou funkcí, samotné .Parse() to rozhodne neudela. Treba takto :
string[] c = "1000,90 Sk".Split(' '); float cena = float.parse(c[0]);
To třeba neni hezké řešení (a třeba ani né fuknční, nemam kompilátor, ale jazyky jsou si podobné), kdy se to pomocí "split" "podle mezery" rozhodní do pole na 1000,90 a SK - a parsuješ jen to první.. (dalo by se to jinak, ale je to první fce v C, kterou jsem našel a de to pomocí ní) Ovšem v závislosti na tom, jaký formát čísla obdržíš, jak bude vypadat částka 100000 (jestli tam nebudou mezery(!), pak by tohle třeba selhalo)
Případně se to v C prej jmenuje substring:
String c="1000,90 SK";
float cena = float.Parse(c.subString(0,c.lastIndexOf(' '))); // parse z stringu zacinajiciho od zacatku a konciciho poslednim výskytem mezery
Môžeš použiť napr. toto:
Pre operácie s cenami zrejme budeš chcieť použiť dátový typ decimal namiesto float.
Môžeš použiť TryParse namiesto Parse (záleží podľa toho, ako to chceš používať).
Ďalšia možnosť je, že si ošetríš vstupy sám pomocou reťazcových operácií, aby si vedel prijať rôzne vstupy od používateľa.