Stránka 1 z 2
c# - odstraneni plovouci carky
Napsal: 20 črc 2008 14:17
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.
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 14:40
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š

Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 14:57
od martin131
tak ted zas nevim jak se ten split pouziva

. Mam promenou
a nevim co dal. Dalsim problemem je, ze float (asi) nelze prekonvertovat do cehokoliv jineho, co by to porovnavani umelo

Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 15:13
od Koja
Nevím proč, ale Visual Studio mi nechce vzít
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š

potom
pole[0] bude to před tečkou/čárkou a
pole[1] bude ten zbytek :)
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 15:24
od martin131
moc diky, ted jen nevim, jestli uz to tu promenou pole[1] vytvorilo a v jakem datovem typu pripadne je
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 15:30
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 :)
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 15:51
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'
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 15:54
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.
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 16:06
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
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 16:13
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."); 
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 16:21
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.");
;
Re: c# - odstraneni plovouci carky
Napsal: 20 črc 2008 16:25
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..