Konverzia zo String do Single   zodpovězená otázka

VB.NET, Algoritmy

V mojom programe mi vybehne takáto hláška:

Conversion from string "- 824,00" to type 'Single' is not valid.

Poradil by mi niekto, prosím, kde môže byť chyba?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To si vážně myslíte, že vám bude někdo schopný konkrétně poradit bez uvedení toho konverzního kódu?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ani nie. Ďakujem za odpoveď pán Linhart. Už mi to funguje. Nie som si istý, ešte sa na to pozriem, ale asi som to prekonvertoval na CSng dvakrát. Len som si myslel, že či sa náhodou niekto s tým nestretol, lebo hláška vyzerá byť jasná ( je okopírovaná...).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Text vyjímky jasný je, ale bez uvedení kódu to mohou být minimálně dva důvody, proč k vyjímce dochází (mezera za znamínkem, nebo kultura, která nepodporuje tento tvar čísla). Příště uvádějte zdrojový kód, na kterém k vyjímce dochází.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ak by ste to cheli vidieť:

  Private Sub Odcitaj(ByVal sender As Object, ByVal e As EventArgs)
        Dim mIndex As Integer
        mIndex = CType(sender, TextBox).Name
        TextBoxy(mIndex).Text = String.Format("{0:# ##0.00}", CSng(TextBoxy(mIndex).Text))
        Labely4(mIndex).Text = String.Format("{0:# ##0.00}", (CSng(TextBoxy(mIndex).Text) - CSng(Labely3(mIndex).Text)))
        If (CSng(TextBoxy(mIndex).Text) - CSng(Labely3(mIndex).Text) <= 0) Then Labely4(mIndex).ForeColor = Color.Red
        TextBox3.Text = String.Format("{0:# ##0.00}", (CSng(TextBox3.Text) + CSng(TextBoxy(mIndex).Text)))
        TextBox4.Text = String.Format("{0:# ##0.00}", (TextBox4.Text + Labely4(mIndex).Text))
    End Sub

pričom pôvodne, keď mi to nefungovalo, som mal miesto (CSng(TextBoxy(mIndex).Text) - CSng(Labely3(mIndex).Text)

toto

CSng(Labely4(mIndex).Text )

Dobrú noc!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Celé je to o formatovaní. Ak prevediem číslo na textový formát pri zlom formatovaní, napríklad ako, ktoré som použil, tak sa zobrazí v požadovanom tvare, ale konverzia naspäť ma už pošle tam, kam patrím. Nemôžte mi niekto poradiť, ako správne prekonvertovať záporné číslo na formát -# ##0,00?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nakoniec mi pomohlo

TextBoxy(mIndex).Text = FormatNumber(TextBoxy(mIndex).Text, , TriState.False)

Predtým som to nevedel nájsť.

http://www.vb-helper.com/howto_net_forma...

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět

Při zobrazování a zadávání hodnot nepoužívejte nějaké svoje pochybné formáty, ale standardní formáty pro kulturu, ve které běží aplikace (a na kterou jsou uživatelé zvyklí ze systému). Pokud potřebujete data ukládat někam na disk, ukládejte je zásadně v neutrální kultuře a při načítání je opět parsujte z neutrální kultury. To jsou naprosté základy lokalizace a globalizace a pokud je budete dodržovat, zbavíte se tím drtivé většiny problémů. V opačném případě si problémy naděláte.

Výše uvedený kód je nepoužitelná hovadina z VB6, které se vsadím že ani nerozumíte.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Stávku by ste vyhrali. :-). Mal som to naštudovať predtým a ušetril by som si hromadu času. Len teraz neviem, na ktorý kód ste mysleli. To čo som predviedol predtým, alebo ten s odkazom? Všetky su vyššie. Dobrú noc!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Všechno, kde je potřeba zobrazovat a/nebo zadávat nějaká data, speciálně čísla a datumy.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Prepáčte, ale asi si nerozumieme. Ktoré je vlastne zlé? FormatNumber, alebo to čo som použil predtým, alebo naozaj všetko? Inak Ten FormatNumber mi funguje bez problémov.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback