lab4 uppgift 2.3 avrundningsfel

  • Författare
  • Meddelande

Per_Ericsson

php-programmerare

  • Inlägg: 40
  • Blev medlem: 03 sep 2018, 20:07

lab4 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 09:37

Min python får med 2 decimaler .05. Svaret i facit avrundas uppåt till .1. Någon som kan tipsa hur jag får python att avrunda 0.5 uppåt? Finns en del diskussioner på nätet som antyder att det korrekta numera anses vara att runda 0.5 nedåt. Vilket jag inte är hjälpt av.

Edit: Förtydligar frågeställningen och rättar rubrik. lab4, inget annat skall det vara.
Senast redigerad av Per_Ericsson 30 sep 2018, 18:36, redigerad totalt 1 gång.

thbb14

css-hackare

  • Inlägg: 28
  • Blev medlem: 10 sep 2018, 04:40

Re: lab3 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 15:19

Menar du lab4?

Per_Ericsson

php-programmerare

  • Inlägg: 40
  • Blev medlem: 03 sep 2018, 20:07

Re: lab3 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 17:04

Jag börjar tappa fokus efter allt felsökande. Lab4 skall det vara. :)

Jag har läst mig till att avrundningen hänger samman med Pythons släktskap med C och hur flyttal hanteras. En lösning skulle kunna vara att importera modulen decimal där man kan låna ROUND__HALF_UP. Tyvärr har jag inte lyckats förstå dokumentationen för de delarna tillräckligt väl för att komma vidare och testa i uppgiften.

thbb14

css-hackare

  • Inlägg: 28
  • Blev medlem: 10 sep 2018, 04:40

Re: lab3 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 17:10

Var får du resultatet *.05 ifrån?
Mitt resultat av uträkningen ger *.832000000002, vilket blir *.1 efter avrundning.

Per_Ericsson

php-programmerare

  • Inlägg: 40
  • Blev medlem: 03 sep 2018, 20:07

Re: lab3 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 17:39

Så ser det ut när jag kör answer.py.

>>> 2.3 FAIL.
>>> You said:
****4.0 <class 'float'>

>>> Hint:
****4.1 <class 'float'>

thbb14

css-hackare

  • Inlägg: 28
  • Blev medlem: 10 sep 2018, 04:40

Re: lab3 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 17:53

Vilken lab är du på egentligen?
Svaret på uppgift 2.3 i lab4: 17357.8,

Per_Ericsson

php-programmerare

  • Inlägg: 40
  • Blev medlem: 03 sep 2018, 20:07

Re: lab3 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 18:36

De nämnde i någon av streamarna att frågorna slumpas. Då gällde det olika länder och arrays.

Kan vi möjligen ha fått olika frågeformulär? Min lab4 fråga 2.3 har rätt svar 12054.1 och min beräkning hamnar på 12054.05 och avrundas till 12054.0 med en decimal.

kh31d4r

regexp-master

  • Inlägg: 135
  • Blev medlem: 23 maj 2012, 15:39

Re: lab4 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 19:22

har du testat den inbyggda funktionen round() ?
Online
Användarvisningsbild

thulin

troubleshooter

  • Inlägg: 514
  • Blev medlem: 30 dec 2015, 15:33
  • Ort: Skurup

Re: lab3 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 21:13

Per_Ericsson skrev:De nämnde i någon av streamarna att frågorna slumpas. Då gällde det olika länder och arrays.

Kan vi möjligen ha fått olika frågeformulär?


Frågorna i sig brukar vara samma, men tal och annat variabelt brukar slumpas. Med resultatet att även svaren blir olika.

Det är orsaken till att det är extra viktigt att bifoga frågeställningen när man frågar om hjälp :-)
/Thulin

Per_Ericsson

php-programmerare

  • Inlägg: 40
  • Blev medlem: 03 sep 2018, 20:07

Re: lab4 uppgift 2.3 avrundningsfel

Inlägg30 sep 2018, 21:23

Ok, ja då är det inget som hindrar att jag pratar ur skägget:

Kinetic energy describes the energy of an object with a certain mass (m) and velocity (v).

Create a function kinetic_energy that calculates the amount of kinetic energy of an object. The formula for calculating kinetic energy is: energy = 0.5 * m * v².

Use your defined function free_fall in combination with kinetic_energy to calculate the kinetic energy of an object with m = 10 after a free fall of time = 5 with the default gravity of earth (9.82).

Round the answer to one decimal.
Kod: Markera allt
def kinetic_energy(t, m, s=0, g=9.82): #t=time, s=initial speed, g=gravity m=mass
    """ Function that calculates kinetic energy. """

    v = physics.free_fall(t, s, g)
    k = round((0.5 * m * v**2), 1)
    return k


ANSWER = kinetic_energy(t=5, m=10, g=9.82)

# I will now test your answer - change false to true to get a hint.
dbwebb.assert_equal("2.3", ANSWER, True)
Användarvisningsbild

efo

dbwebb

  • Inlägg: 395
  • Blev medlem: 15 aug 2016, 11:58
  • Ort: Rödeby

Re: lab4 uppgift 2.3 avrundningsfel

Inlägg01 okt 2018, 07:58

Antigen kan du ändra facit i answer.json eller så skriver du en tydlig rad i din redovisningstext att du har haft problem med avrundningen.

Är precis som du skriver ett problem med precisionen av flyttal i Python och många andra programmeringsspråk.

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 17 gäster