Round: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(17 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''round'' rundet eine Gleitkommazahl zu einer Ganzzahl. Die Funktion erwartet eine Zahl und gibt die nächst gelegene Ganzzahl zurück.
Die Funktion ''round'' rundet eine Gleitkommazahl zu einer Ganzzahl. Die Funktion erwartet eine Zahl und gibt die nächst gelegene Ganzzahl zurück.


Zeile 6: Zeile 8:


=== Syntax ===
=== Syntax ===
  round(float zahl)
  round([[Gleitkommazahl]] zahl, [ [[Ganzzahl]] index ])


=== Parameter ===
=== Parameter ===
* '''zahl''' - die zu rundene Zahl
* '''zahl''' - die zu rundene Zahl
* '''index''' - die Nachkommastelle - optional (default = 0)


=== Return Value ===
=== Return Value ===
*Gibt die gerundete Ganzzahl zurück
*Gibt die gerundete [[Ganzzahl]] zurück


=== Beispiele ===
=== Beispiele ===
==== Standardfälle ====
==== Standardfälle ====
  round(12.4)  --> returns 12
  round(12.4)  --> returns 12
  round(15.678)  --> returns 16
  round(15.678)  --> returns 16
round(15.678, 2)  --> returns 15.68
round(3.21, 2)  --> returns 3.21
round(3.1, 0)  --> returns 3
round(27/4, 2)    --> returns 6.75


==== Benutzung mit Variablen ====
==== Benutzung mit Variablen ====
round([pos=1])
  round([var=a])
  round([var=a])
round([var=a], [var=b])


====JUnit Tests====
==== Benutzung mit studentischen Eingaben ====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
'''JACK2:'''
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
round([pos=1])
@BeforeClass
public static void beforeTest() {
OMOBJ nineThree = new OMOBJ();
OMOBJ threeFive = new OMOBJ();
nineThree.setOMF(OMCreator.createOMF(93.49999));
threeFive.setOMF(OMCreator.createOMF(3.5));
 
fillIn.put(4, threeFive);
fillIn.put(93, nineThree);
 
exerVar.put("a", threeFive);
exerVar.put("b", nineThree);
}
 
@Test
public void testRound1() {
assertEquals(6, Evaluator.getNumberResult("round(6.3)", exerVar, fillIn), 0);
}
 
@Test
public void testRound2() {
assertEquals(93, Evaluator.getNumberResult("round(93.49999)", exerVar, fillIn), 0);
}
 
@Test
public void testRound3() {
assertEquals(94, Evaluator.getNumberResult("round(93.50001)", exerVar, fillIn), 0);
}
 
@Test
public void testRound4() {
assertEquals(-93, Evaluator.getNumberResult("round(-93.49999)", exerVar, fillIn), 0);
}
 
@Test
public void testRound5() {
assertEquals(-94, Evaluator.getNumberResult("round(-93.50001)", exerVar, fillIn), 0);
}
 
@Test
public void testRound6() {
assertEquals(4, Evaluator.getNumberResult("round(3.5)", exerVar, fillIn), 0);
}
 
@Test
public void testRound7() {
assertEquals(3, Evaluator.getNumberResult("round(2.5)", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithInput1() {
assertEquals(4, Evaluator.getNumberResult("round([pos=4])", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithInput2() {
assertEquals(93, Evaluator.getNumberResult("round([pos=93])", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithVariable1() {
assertEquals(4, Evaluator.getNumberResult("round([var=a])", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithVariable2() {
assertEquals(93, Evaluator.getNumberResult("round([var=b])", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithPointNumbers1() {
assertEquals(0, Evaluator.getNumberResult("round(0.2)", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithPointNumbers2() {
assertEquals(0, Evaluator.getNumberResult("round(-0.2)", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithExpressions1() {
assertEquals(-2, Evaluator.getNumberResult("round(round(-2.2))", exerVar, fillIn), 0);
}
 
@Test
public void testRoundWithExpressions2() {
assertEquals(2, Evaluator.getNumberResult("round(round(round(2.1)))", exerVar, fillIn), 0);
}
 
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testRoundWithWrongInputCharacter() {
Evaluator.getNumberResult("round(a)", exerVar, fillIn);
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testRoundWithTwoArguments() {
Evaluator.getNumberResult("round(1.2, 1.3)", exerVar, fillIn);
}
 
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testRoundWithThreeArguments() {
Evaluator.getNumberResult("round(2.1, 2.2, 2.3)", exerVar, fillIn);
}
 
@Test(expected = UndefinedExerciseVariableException.class)
public void testRoundWithMissingExerciseVariable() {
Evaluator.getNumberResult("round('[var=j]')", exerVar, fillIn);
}


@Test(expected = UndefinedFillInVariableException.class)
'''JACK3:'''
public void testRoundWithMissingInput() {
round([input=field1])
Evaluator.getNumberResult("round('[pos=42]')", exerVar, fillIn);
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Die Funktion kann auch genutzt werden, um aus einem Bruch eine Dezimalzahl zu erzeugen.
* Weitere Funktionen zum Thema runden sind [[ceil]], [[floor]] und [[rint]].


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Operator]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 18. September 2024, 08:40 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion round rundet eine Gleitkommazahl zu einer Ganzzahl. Die Funktion erwartet eine Zahl und gibt die nächst gelegene Ganzzahl zurück.

Alternativ kann die Funktion round eine Gleitkommazahl auf eine bestimmt Nachkommastelle runden. Das zweite optionale Argument gibt die Nachkommastelle an. 0 entspricht einem Aufruf ohne zweitem Parameter.

Syntax

round(Gleitkommazahl zahl, [ Ganzzahl index ])

Parameter

  • zahl - die zu rundene Zahl
  • index - die Nachkommastelle - optional (default = 0)

Return Value

Beispiele

Standardfälle

round(12.4)   --> returns 12

round(15.678)   --> returns 16

round(15.678, 2)   --> returns 15.68

round(3.21, 2)   --> returns 3.21

round(3.1, 0)   --> returns 3

round(27/4, 2)    --> returns 6.75

Benutzung mit Variablen

round([var=a])

round([var=a], [var=b])

Benutzung mit studentischen Eingaben

JACK2:
round([pos=1])
JACK3:
round([input=field1])

Hinweise

  • Die Funktion kann auch genutzt werden, um aus einem Bruch eine Dezimalzahl zu erzeugen.
  • Weitere Funktionen zum Thema runden sind ceil, floor und rint.