Definování znaménka mínis – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Definování znaménka mínis – Java – Fórum – Programujte.comDefinování znaménka mínis – Java – Fórum – Programujte.com

 

Matěj Míček
~ Anonymní uživatel
2 příspěvky
18. 4. 2014   #1
-
0
-

dobrý den, začal jsem programovat aplikaci pro android a vyskytl se problém. Konkrétně se jedná o aplikaci na řešení kvadratických rovnic. Vše funguje ale když zadám do políčka vyplnění pouze znaménko mínus "-" a dám vypočítat, aplikace spadne. Předtím padala, i když nebylo vyplněno nic, ale tenhle problém jsem už vyřešil. Zkoušel jsem všechno možné, ale nevím, jak definovat to, že je vyplněno pouze mínus a že tím pádem se políčko rovná -1. Děkuji za pomoc  

double a = 1;
				double b = 1;
				double c = 1;
				double Ad = editA.getText().length();
				double Bd = editB.getText().length();
				double Cd = editC.getText().length();
				
				//length
				
				if (Ad > 0){
					a = Double.valueOf(editA.getText().toString());
				}				
				if (Bd > 0){
					b = Double.valueOf(editB.getText().toString());
				}
				if (Cd > 0 ){
					c = Double.valueOf(editC.getText().toString());
				}			
			
				
Nahlásit jako SPAM
IP: 91.103.166.–
miHan0
Návštěvník
18. 4. 2014   #2
-
0
-

Ahoj, předpokládám, že sis to nezkoušel krokovat. Podle toho co vidím ti to padá proto, že se snažíš vstup (tedy to tvé "mínus") převést na datový typ double. Vyřešíš to vcelku jednoduše tím, že ještě před ty tvé "ify" vložíš podmínku jestli uživatel náhodou nezadal mínus.

Každopádně by jsi měl myslet na ošetření výjimek ze vstupů (co kdyby se nějaký zlomyslný uživatel rozhodl, že nezadá reálné číslo, ale znaky abecedy? ... ).

Zadalší (a to už je jen taková drobnost :)) si myslím, že používání příkazu .toString u metody .getText je zbytečné. .getText (pokud se nepletu) už string vrací. Pokud se pletu, tak tuhle připomínku neber v potaz :).

Nahlásit jako SPAM
IP: 62.204.249.–
Matěj Míček
~ Anonymní uživatel
2 příspěvky
18. 4. 2014   #3
-
0
-

#2 miHan
dobrý den, začal jsem programovat aplikaci pro android a vyskytl se problém. Konkrétně se jedná o aplikaci na řešení kvadratických rovnic. Vše funguje ale když zadám do políčka vyplnění pouze znaménko mínus "-" a dám vypočítat, aplikace spadne. Předtím padala, i když nebylo vyplněno nic, ale tenhle problém jsem už vyřešil. Zkoušel jsem všechno možné, ale nevím, jak definovat to, že je vyplněno pouze mínus a že tím pádem se políčko rovná -1. Děkuji za pomoc  

double a = 1;
				double b = 1;
				double c = 1;
				double Ad = editA.getText().length();
				double Bd = editB.getText().length();
				double Cd = editC.getText().length();
				
				//length
				
				if (Ad > 0){
					a = Double.valueOf(editA.getText().toString());
				}				
				if (Bd > 0){
					b = Double.valueOf(editB.getText().toString());
				}
				if (Cd > 0 ){
					c = Double.valueOf(editC.getText().toString());
				}			
			
				

Děkuji moc za odpověd, tohle programuji pro android a textové pole už je definováno jako číslo, takže uživatel nemůže vložit nic jiného než číslo a znaménko + a -. Celou dobu právě dumám nad tím, jak definovat to, že je tam mínus. Mohl bys mi prosím napsat přímo část kódu s definováním toho, že je tam mínus  ? Děkuji :)

Nahlásit jako SPAM
IP: 91.103.166.–
miHan0
Návštěvník
18. 4. 2014   #4
-
0
-

#3 Matěj Míček
 Psal jsem to bez editoru tak nějak z hlavy, ale to nejjednodušší jak si můžeš odchytat "mínus" je asi takhle ...

double a = 1;
double b = 1;
double c = 1;
double Ad = editA.getText().length();
double Bd = editB.getText().length();
double Cd = editC.getText().length();			

if (Ad > 0){
  a = editA.getText();
  if a.contains("-") {...........} 
    else a = Double.valueOf(editA.getText().toString());
}
if (Bd > 0){
  b = Double.valueOf(editB.getText().toString());}
if (Cd > 0 ){
  c = Double.valueOf(editC.getText().toString());}									
Nahlásit jako SPAM
IP: 62.204.249.–
Flowy0
Věrný člen
18. 4. 2014   #5
-
0
-

#4 miHan
EditText je graficky prvok (riadok pre vlozenie textu) ... getText() vracia objekt typu Editable preto je tam toString()

ak to chces na kvadraticke rovnice tak budes potrebovat okrem cisel aj text (pre x) cize to co robis je dost zbytocne ...

obmedzovat text tak ze budes hladat vsetky vynimky neni ta spravna cesta

pre vyriesenie tvojho problemu odporucam pouzit regularne vyrazy (pripadne pre rozlisenie ci je to cislo sa da pouzit odchyt vynimiek ale to tiez neni pekne riesenie) ale pre riesenie kvadratickej rovnice budes potrebovat bezkontextovu gramatiku pripadne nejaku jednoduchsiu nahradu ... skus prejst starsie posty myslim ze nieco najdes

Nahlásit jako SPAM
IP: 95.103.186.–
https://github.com/Flowy
miHan0
Návštěvník
18. 4. 2014   #6
-
0
-

#5 Flowy
Za ten EditText díky. Pro android běžně nepíšu, čili tohle jsem spíš tipoval (viz výše). Co se toho "nalezení výskytu mínusu týče". Psal jsem že to není ideál, ale že je tak vcelku snadno možné zjistit jestli ten text nějaký mínus obsahuje   .

Nahlásit jako SPAM
IP: 62.204.249.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Znaménka — založil Vladimír Uher

Znaménka — založil volnaduse

IF znamenka s písmeny — založil David

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý