Permalänk
Medlem

[Java] Miniräknare

Tjenare!

Har lyckats förvirra mig själv med min egna kod när jag försökt mig på att göra windows miniräknare i Java.
Ej kommenterad kod så det kan ta en stund att gå igenom det men uppskattas fruktansvärt mycket om det finns någon villig själ där ute som kan föreslå något lättare sätt att lösa +, -, /, * och = på, skall funka exakt som i windows miniräknare dvs.

Problemet jag får är t.ex. när jag tar 3+2*2 = 12 (?)...

http://pastebin.com/t9mSsiZP
http://pastebin.com/kC2AFUdG

Tack så mycket på förhand!

Permalänk
Medlem
Skrivet av linuxe93:

Tjenare!

Har lyckats förvirra mig själv med min egna kod när jag försökt mig på att göra windows miniräknare i Java.
Ej kommenterad kod så det kan ta en stund att gå igenom det men uppskattas fruktansvärt mycket om det finns någon villig själ där ute som kan föreslå något lättare sätt att lösa +, -, /, * och = på, skall funka exakt som i windows miniräknare dvs.

Problemet jag får är t.ex. när jag tar 3+2*2 = 12 (?)...

http://pastebin.com/t9mSsiZP
http://pastebin.com/kC2AFUdG

Tack så mycket på förhand!

Vad tänker du att svaret ska bli, 10 eller 7? Dock kan jag inte så mycket om Java men jag hoppas det här kan hjälpa de andra.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Niksam:

Vad tänker du att svaret ska bli, 10 eller 7? Dock kan jag inte så mycket om Java men jag hoppas det här kan hjälpa de andra.

Skickades från m.sweclockers.com

Den ska ju räkna ut 3+2 först, sedan gångra det med 2 så att det blir 10.

Permalänk

Jag orkade inte läsa igenom hela koden, men kan du förklara ungefär hur den funkar?

Visa signatur

Intel i7 2600K @ 4.8 GHz | Asus P8Z68-V Pro | Corsair Vengeance 1600mhz 24gb | 512gb SSD | MSI GeForce GTX 1080 Ti Gaming X

Permalänk
Medlem
Skrivet av linuxe93:

Den ska ju räkna ut 3+2 först, sedan gångra det med 2 så att det blir 10.

Då ska väl det se ut såhär: 3+(2*2)= 10, annars blir det ju 3+2*2=7

Edit: Det verkar ju som om den nu räknar: 3*2*2=12

Permalänk
Skrivet av linuxe93:

Den ska ju räkna ut 3+2 först, sedan gångra det med 2 så att det blir 10.

då 3+2 inte står i parentes ska man ta multiplikationen först dvs 2*2 = 4 och sedan + 3 vilket blir 7!

Du får läsa på lite tror ja http://www.matteguiden.se/rakneregler/

Visa signatur

Stationär Dator : FD define r3|Corsair RM 750W|i7 4770K +NH-U9B SE2|Z87-DS3H|ASUS R9 290 4GB DirectCuII|A-data 1600 DDR3 8GB|2TB + 1TB + 1 TB + 120Gb SSD
Bärbar dator : Acer Aspire TimelineX 5820TG

BeErNwHiSkY:Beer and Whisky!

Permalänk

Svaret borde bli sju om det ska följa mattereglerna

Visa signatur

Intel i7 2600K @ 4.8 GHz | Asus P8Z68-V Pro | Corsair Vengeance 1600mhz 24gb | 512gb SSD | MSI GeForce GTX 1080 Ti Gaming X

Permalänk
Medlem

Tror ni alla missuppfattar vad jag menar.
Skriv in 3+2*2 och tryck = i windows miniräknare.

Permalänk
Medlem
Skrivet av linuxe93:

Tror ni alla missuppfattar vad jag menar.
Skriv in 3+2*2 och tryck = i windows miniräknare.

Genom att göra det blir det (3+2)*2 = 10
Helt rätt 3+2*2 ska vara 3+(2*2) = 7

Visa signatur

[ Corsair 460X ] [ Corsair HX750i ] [ AMD Ryzen 5800X ] [ Zotac RTX3080 Trinity OC] [ Asus ROG Strix X570-F Gaming]
[ 32GB G.Skill TridentZ Neo 3800Mhz DDR4 ] [ Samsung 980 Pro 500GB + 960 EVO 500GB ] [ Logitech PRO X 2 ] [ Corsair H115i ] [ Win11 ] [Asus TUF Gaming VG27AQ]

Permalänk
Medlem
Skrivet av Evilmonkey:

då 3+2 inte står i parentes ska man ta multiplikationen först dvs 2*2 = 4 och sedan + 3 vilket blir 7!

Du får läsa på lite tror ja http://www.matteguiden.se/rakneregler/

Det var så jag menade, men tänkte att han kanske inte tänkte på det.

Skickades från m.sweclockers.com

Permalänk
Inaktiv
Skrivet av linuxe93:

Tror ni alla missuppfattar vad jag menar.
Skriv in 3+2*2 och tryck = i windows miniräknare.

Ja, men när du skriver så i Windows miniräknare, så har du redan räknat ut 3+2 innan du slår in *2. Alltså ser det ut så här med matteregler: (3+2)*2

Permalänk
Medlem
Skrivet av anon184352:

Ja, men när du skriver så i Windows miniräknare, så har du redan räknat ut 3+2 innan du slår in *2. Alltså ser det ut så här med matteregler: (3+2)*2

Yes, men ska försöka skriva om hela koden som har med operatorer och = att göra, har lyckats göra det alltför krångligt...

Permalänk
Medlem

Tack för att ni försökte läxa upp mig matematiskt killar, löste problemet själv dock hehe, tack för att ni tog er tid att försöka i alla fall, uppskattas mycket!

Om ni vill kan jag lägga upp det färdiga resultatet med kommentarer för nyfikna, hojta till i så fall!