---
title: "Procentuträkning Java"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/185130-procentuträkning-java"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "rikard81"
published: "2010-11-03T19:44:01.000Z"
updated: "2010-11-03T22:54:34.000Z"
replies: 16
views: 1534
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/185130-procentuträkning-java"
---

# Procentuträkning Java

## #1 — rikard81, 2010-11-03T19:44Z

Håller på och lär mig java och har hittat några bra övningar på nätet. I en uppgift står det "Variabeln rabatt till 5." och sedan att man ska föra in en summa över 10 i en dialogruta och sedan ska rabatten dra på summan man fört in. Kanske svårt utan kod, men hur i hela friden ska man räkna ut rabatten om variabeln "rabatt" har värdet 5 och att du inte får ändra detta värde?. Man får alltså inte ändra värdet till te.x 0,95 och använda flyttande tal. värdet ska vara 5 alltså.

om man te.x deklarerar:

int rabatt;
double totpris;

..och totpris fås från indata via dialogrutan, där man skriver in summan.

Hur ska man då skriva för att dra rabatten från totpris när värdet är 5.

int totpris=totpris\*rabatt;

Men då stämmer det ju inte? nån med tips.

Permalänk: https://www.webforum.nu/p/185130

## #2 — Gein, 2010-11-03T19:58Z

```
prisEfterRabatt = totpris * (100-rabatt)/100;
```

Permalänk: https://www.webforum.nu/p/2258586

## #3 — tydal, 2010-11-03T20:02Z

Du behöver inte mellanlagra allt i variabler. Hur tänker du själv om du har 5 och ska göra om det till en procentsats och räkna av det som rabatt? Det är bara att du skriver så...

Permalänk: https://www.webforum.nu/p/2258588

## #4 — rikard81, 2010-11-03T20:04Z

Variabeln rabatt måste vara en heltalsvariabel och ha värdet 5. Det står ju "rabatt till 5." Detta är ju trots allt en uppgift jag hittade på nätet. På ett forum.

Permalänk: https://www.webforum.nu/p/2258589

## #5 — rikard81, 2010-11-03T20:09Z

Denna uppgift har jag löst förutom rabatten som även skribenten tycks ha problem med.

Permalänk: https://www.webforum.nu/p/2258590

## #6 — tydal, 2010-11-03T20:20Z

Ser inga konstigheter med uppgiften. Mitt resonemang och Geins kod stämmer.

I en heltalsvariabel så kan man bara lagra heltal, men det går ju alldeles utmärkt att i uträkningar få fram flyttal, men då måste du ha en flyttalsvariabel att lagra resultatet i, men det har du ju i form av totpris, så det är ju lugnt.

Permalänk: https://www.webforum.nu/p/2258591

## #7 — rikard81, 2010-11-03T20:24Z

Okey. Då var det jag som missuppfattade uppgiften när jag läste den. Självklart är det onödigt att mellanlagra värden i fler variabler än nödvändigt exempelvis rabatt=5; Men trodde det var tvunget att skriva så. Då blir det ju bra mycket enklare genom att räkna ut allting i en variabel och ha variabelns namn döpt till rabatt.

Permalänk: https://www.webforum.nu/p/2258592

## #8 — rikard81, 2010-11-03T20:41Z

Vill förstå bara Gein. Men hur får du det där till 5 %?

Permalänk: https://www.webforum.nu/p/2258594

## #9 — tydal, 2010-11-03T20:48Z

Procent betyder hundradelar. 5% är lika med 5 delat med 100, alltså 5/100 (eller rabatt/100).

Permalänk: https://www.webforum.nu/p/2258598

## #10 — rikard81, 2010-11-03T20:51Z

> **[Gein skrev:](https://www.webforum.nu/p/1521687)**
>
> ```
> prisEfterRabatt = totpris * (100-rabatt)/100;
> ```

Går det att skriva detta på något annat sätt. rabatt=totpris\*0.95;  Men då funkar inte int. och int måste vara med.

Permalänk: https://www.webforum.nu/p/2258600

## #11 — rikard81, 2010-11-03T20:56Z

> **[Gein skrev:](https://www.webforum.nu/p/1521687)**
>
> ```
> prisEfterRabatt = totpris * (100-rabatt)/100;
> ```

Jag får error när jag skriver som ovan.

Permalänk: https://www.webforum.nu/p/2258601

## #12 — erciz, 2010-11-03T20:58Z

> **[rikard81 skrev:](https://www.webforum.nu/p/1521704)**
>
> Jag får error när jag skriver som ovan.

Det blir lättare att hjälpa dig och du skriver vilket felmeddelande du får.

Permalänk: https://www.webforum.nu/p/2258606

## #13 — rikard81, 2010-11-03T21:00Z

Fick det att funka. Tack allesammans för att ni orkar med en nybörjare.

Permalänk: https://www.webforum.nu/p/2258608

## #14 — tydal, 2010-11-03T21:10Z

Du har glömt ; efter "int rabatt".

Permalänk: https://www.webforum.nu/p/2258611

## #15 — rikard81, 2010-11-03T21:29Z

Såg det tidigare. Det är fixat. tack

Permalänk: https://www.webforum.nu/p/2258614

## #16 — aron, 2010-11-03T22:23Z

> **[tydal skrev:](https://www.webforum.nu/p/1521692)**
>
> I en heltalsvariabel så kan man bara lagra heltal, men det går ju alldeles utmärkt att i uträkningar få fram flyttal, men då måste du ha en flyttalsvariabel att lagra resultatet i, men det har du ju i form av totpris, så det är ju lugnt.

 
Vist görs det automatiska typomvandlingar i Java när man blandar typer. Om man försöker lagra en double i en int klagar kompilatorn ("possible loss of precision"). Så det är tack vara att totpris i koden Gain skrev är en double som gör att typomvandlingen blir rätt och divisionen blir en flyttals division och inte en heltals division.

Kan koden bli mer effektiv om man har rabatt som double från början så man slipper den typomvandlingen?

Permalänk: https://www.webforum.nu/p/2258623

## #17 — rikard81, 2010-11-03T22:54Z

Rabatt måste vara int och inte double i övningen. Hade ju vart smidigare med double så slipper man omvandla. Men vad kan man göra när det måste vara en heltalsvariabel mer än att typomvandla.

Permalänk: https://www.webforum.nu/p/2258626

---

Tråden på webben: https://www.webforum.nu/amne/java/185130-procentuträkning-java
