Předmět Autor Datum
Já C# neznám, ani názvy funkcí, ale kazdopádně to takhle "jednoduse" nepujde a o oddeleni "SK" se bu…
AZOR 15.07.2008 00:28
AZOR
Případně se to v C prej jmenuje substring: String c="1000,90 SK"; float cena = float.Parse(c.subStr…
AZOR 15.07.2008 00:35
AZOR
Môžeš použiť napr. toto: CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture("sk-SK"); deci… poslední
los 15.07.2008 09:36
los

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)

Môžeš použiť napr. toto:

CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture("sk-SK");

decimal cena = decimal.Parse("1000,90 Sk", NumberStyles.Currency, cultureInfo);

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.

Zpět do poradny Odpovědět na původní otázku Nahoru