c# - odstraneni plovouci carky

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
martin131
Level 2
Level 2
Příspěvky: 185
Registrován: 03 říj 2007 18:15
Bydliště: Praha
Kontaktovat uživatele:

c# - odstraneni plovouci carky

Příspěvek od martin131 »

Cauky,
resim takovy maly problem, mam promenou abc, ktere se meni pocet desetinych mist (tzn. napr. 25.37836, jindy zase 32.228472), promenna ma datovy typ double, tim padem nelze porovnavat, ale ja potrebuji porovnavat pouze to cele cislo, bez desetinnych mist. Proste se jich potrebuji nejak zbavit a nasledne prekonvertovat do jineho datoveho typu napr. int. Mozna by to slo tak, aby se to cislo pri vypoctu promenne abc zakrouhlilo, ale ja nevim jak na to.

Budu rad za kazdickou i sebemensi pomoc.
WS - i5@2.8Ghz, 4GB RAM, 640GB, Ati Radeon X5850, Se7en
NTB - Intel Atom D525, 4GB RAM, 320GB, Nvidia Ion 2, Se7en

SERVER - P4 2,8 Ghz, 1GB RAM, 320GB, Debian

Ukládání streamovaného videa do počítače pomocí programu VLC
Uživatelský avatar
Koja
Level 4.5
Level 4.5
Příspěvky: 1909
Registrován: 30 lis 2005 11:21
Bydliště: Brno
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od Koja »

Jen tak narychlo mě napadlo .. to číslo by šlo rozsekat pomocí .Split('.') do pole. V pole[0] by bylo to číslo před tečkou a v pole[1] by bylo to číslo za tečkou. A to pole[0] si potom můžeš převádět a porovnávat jak chceš :wink:
Everybody lies so don't trust anyone. :)
Uživatelský avatar
martin131
Level 2
Level 2
Příspěvky: 185
Registrován: 03 říj 2007 18:15
Bydliště: Praha
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od martin131 »

tak ted zas nevim jak se ten split pouziva :-) . Mam promenou

Kód: Vybrat vše

float abc = 22,98876;
a nevim co dal. Dalsim problemem je, ze float (asi) nelze prekonvertovat do cehokoliv jineho, co by to porovnavani umelo :-(
WS - i5@2.8Ghz, 4GB RAM, 640GB, Ati Radeon X5850, Se7en
NTB - Intel Atom D525, 4GB RAM, 320GB, Nvidia Ion 2, Se7en

SERVER - P4 2,8 Ghz, 1GB RAM, 320GB, Debian

Ukládání streamovaného videa do počítače pomocí programu VLC
Uživatelský avatar
Koja
Level 4.5
Level 4.5
Příspěvky: 1909
Registrován: 30 lis 2005 11:21
Bydliště: Brno
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od Koja »

Nevím proč, ale Visual Studio mi nechce vzít

Kód: Vybrat vše

float abc = 22,98876;

píše mi to Identifier expected, ale když ho načtu z TextBoxu, tak to funguje normálně ..

Ale tohle

Kód: Vybrat vše

float abc = 22,98876;
string x = abc.ToString();
string[] pole;
pole = x.Split(',');

by mělo být to, co potřebuješ :wink:
potom pole[0] bude to před tečkou/čárkou a pole[1] bude ten zbytek :)
Everybody lies so don't trust anyone. :)
Uživatelský avatar
martin131
Level 2
Level 2
Příspěvky: 185
Registrován: 03 říj 2007 18:15
Bydliště: Praha
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od martin131 »

moc diky, ted jen nevim, jestli uz to tu promenou pole[1] vytvorilo a v jakem datovem typu pripadne je
WS - i5@2.8Ghz, 4GB RAM, 640GB, Ati Radeon X5850, Se7en
NTB - Intel Atom D525, 4GB RAM, 320GB, Nvidia Ion 2, Se7en

SERVER - P4 2,8 Ghz, 1GB RAM, 320GB, Debian

Ukládání streamovaného videa do počítače pomocí programu VLC
Uživatelský avatar
Koja
Level 4.5
Level 4.5
Příspěvky: 1909
Registrován: 30 lis 2005 11:21
Bydliště: Brno
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od Koja »

string[] pole; //tady sis zadeklaroval pole typu string
pole = x.Split(','); //a tady jsi ho pomocí Splitu naplnil a rozdělil

Split dělá vpodstatě to, že vezme nějakej celej string a rozdělí ho na víc částí, pomocí toho oddělovače (tady je to ta čárka). Takže kdyby ten string byl například 365,12435,864,3578 .. tak Split ti udělá
pole[0] = 365
pole[1] = 12435
pole[2] = 864
pole[3] = 3578
...

Takže v tom, co sem ti poslal se ti už vytvořilo pole[0] a pole[1], oboje jako string. Takže když to budeš chtít potom porovnávat, tak to musíš přetypovat do nějaký proměnný. Například
int x = int.Parse(pole[0]);
int y = int.Parse(pole[1]);

a pak je můžeš porovnávat :)
Everybody lies so don't trust anyone. :)
Uživatelský avatar
martin131
Level 2
Level 2
Příspěvky: 185
Registrován: 03 říj 2007 18:15
Bydliště: Praha
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od martin131 »

aha uz to zacinam chapat. :-) vsechno jde, ale pri tom porovnavani to pise Operator '<' cannot be applied to operands of type 'int' and 'string'
WS - i5@2.8Ghz, 4GB RAM, 640GB, Ati Radeon X5850, Se7en
NTB - Intel Atom D525, 4GB RAM, 320GB, Nvidia Ion 2, Se7en

SERVER - P4 2,8 Ghz, 1GB RAM, 320GB, Debian

Ukládání streamovaného videa do počítače pomocí programu VLC
Uživatelský avatar
Koja
Level 4.5
Level 4.5
Příspěvky: 1909
Registrován: 30 lis 2005 11:21
Bydliště: Brno
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od Koja »

Tak jsi něco nepřetypoval a zkoušíš porovna int a string. Zkontroluj si, jestli jsou obě proměnné, které porovnáváš vážně int.
Everybody lies so don't trust anyone. :)
Uživatelský avatar
martin131
Level 2
Level 2
Příspěvky: 185
Registrován: 03 říj 2007 18:15
Bydliště: Praha
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od martin131 »

tak ted jsem se zrejme spatne vyjadril, ja neporovnavam 2 hodnoty, ja podminuji jednu

Kód: Vybrat vše

            if (bmi0 < "18")
                Console.WriteLine("to " + "znamená, " + "že " + "máte " + "podváhu.");


bmi0 je urcite int
WS - i5@2.8Ghz, 4GB RAM, 640GB, Ati Radeon X5850, Se7en
NTB - Intel Atom D525, 4GB RAM, 320GB, Nvidia Ion 2, Se7en

SERVER - P4 2,8 Ghz, 1GB RAM, 320GB, Debian

Ukládání streamovaného videa do počítače pomocí programu VLC
Uživatelský avatar
Koja
Level 4.5
Level 4.5
Příspěvky: 1909
Registrován: 30 lis 2005 11:21
Bydliště: Brno
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od Koja »

if (bmi0 < "18") -> if (bmi0 < 18) a mělo by to fungovat :)

Jinak
Console.WriteLine("to " + "znamená, " + "že " + "máte " + "podváhu."); můžeš klidně napsat i jako Console.WriteLine("to znamená, že máte podváhu."); :wink:
Everybody lies so don't trust anyone. :)
Uživatelský avatar
martin131
Level 2
Level 2
Příspěvky: 185
Registrován: 03 říj 2007 18:15
Bydliště: Praha
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od martin131 »

to me necvaklo :-), ted to sice nehlasi zadnou chybu, ale kdyz tu aplikaci spusti tak to podle tej podminky nic nenapise


konec toho kodu vypada takto:

Kód: Vybrat vše

   
            // odstraneni desetinne carky
            string x = bmi2.ToString();
            string[] pole;
            pole = x.Split(',');

         

            int bmi0 = int.Parse(pole[0]);
            Console.WriteLine(bmi0);
           
           



           

            // vyhodnoceni BMI
           
             
            if (bmi0 < 18)
                Console.WriteLine("to " + "znamená, " + "že " + "máte " + "podváhu.");
            if (bmi0 == 19 - 25)
                Console.WriteLine("to " + "znamená, " + "že " + "máte " + "optimální " + "váhu.");
;
WS - i5@2.8Ghz, 4GB RAM, 640GB, Ati Radeon X5850, Se7en
NTB - Intel Atom D525, 4GB RAM, 320GB, Nvidia Ion 2, Se7en

SERVER - P4 2,8 Ghz, 1GB RAM, 320GB, Debian

Ukládání streamovaného videa do počítače pomocí programu VLC
Uživatelský avatar
Koja
Level 4.5
Level 4.5
Příspěvky: 1909
Registrován: 30 lis 2005 11:21
Bydliště: Brno
Kontaktovat uživatele:

Re: c# - odstraneni plovouci carky

Příspěvek od Koja »

Mohl bys mi poslat celej ten zdroják? Nebo aspon od načtení toho čísla, přes převedení až po tu podmínku..
Everybody lies so don't trust anyone. :)
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na „Programování a tvorba webu“