Viele Programmiersprachen haben eigene numerische Typen, um verschiedene Arten von Zahlen darzustellen, aber JavaScript kennt nur zwei:
number: ein numerischer Datentyp im 64-Bit-Gleitkommaformat mit doppelter Genauigkeit (IEEE 754).
Beispiele sind -6, -2.4, 0, 0.1, 1, 3.14, 16.984025, 25, 976, 1024.0 und 500000.bigint: ein numerischer Datentyp, der Ganzzahlen im Format mit beliebiger Genauigkeit darstellen kann.
Beispiele sind -12n, 0n, 4n und 9007199254740991n.Wenn du beliebige Genauigkeit benötigst oder mit extrem großen Zahlen arbeitest, verwende den Typ bigint.
Andernfalls ist der Typ number wahrscheinlich die bessere Wahl.
Es gibt ein eingebautes globales Objekt namens Math, das verschiedene Rundungsfunktionen bereitstellt.
Zum Beispiel kannst du Kommazahlen mit floor abrunden oder mit ceil aufrunden, und zwar auf die nächste ganze Zahl.
Math.floor(234.34); // => 234
Math.ceil(234.34); // => 235
JavaScript bietet 6 verschiedene Operatoren für grundlegende Rechenoperationen mit Zahlen.
+: Der Additionsoperator wird verwendet, um die Summe von Zahlen zu ermitteln.-: Der Subtraktionsoperator wird verwendet, um die Differenz zwischen zwei Zahlen zu ermitteln.*: Der Multiplikationsoperator wird verwendet, um das Produkt zweier Zahlen zu ermitteln./: Der Divisionsoperator wird verwendet, um zwei Zahlen zu dividieren.2 - 1.5; //=> 0.5
19 / 2; //=> 9.5
%: Der Restoperator wird verwendet, um den Rest einer durchgeführten Division zu ermitteln.
40 % 4; // => 0
-11 % 4; // => -3
**: Der Potenzoperator wird verwendet, um eine Zahl in eine Potenz zu erheben.
4 ** 3; // => 64
4 ** 1 / 2; // => 2
Wenn du mehrere Operatoren in einer Zeile verwendest, folgt JavaScript einer Rangfolge, wie sie in dieser Rangfolgetabelle dargestellt ist. Vereinfacht gesagt verwendet JavaScript die PEDMAS-Regel (Klammern, Exponenten, Division/Multiplikation, Addition/Subtraktion), die wir aus dem Mathematikunterricht der Grundschule kennen.
const result = 3 ** 3 + 9 * 4 / (3 - 1);
// => 3 ** 3 + 9 * 4/2
// => 27 + 9 * 4/2
// => 27 + 18
// => 45
Kurzschreibweisen für Zuweisungsoperatoren sind eine kürzere Art, Code zu schreiben, der Rechenoperationen auf eine Variable ausführt und der Variablen den neuen Wert zuweist.
Betrachte zum Beispiel zwei Variablen x und y.
Dann ist x += y dasselbe wie x = x + y.
Häufig wird dies mit einer Zahl statt mit einer Variablen y verwendet.
Die 5 anderen Operationen lassen sich auf ähnliche Weise durchführen.
let x = 5;
x += 25; // x is now 30
let y = 31;
y %= 3; // y is now 1
In dieser Übung schreibst du Code, der einem Freelancer dabei hilft, mit seinen Kunden über die Preise für bestimmte Projekte zu kommunizieren. Du schreibst ein paar Hilfsfunktionen, um die Kosten für die Kunden schnell zu berechnen.
Die Variable ratePerHour und die Funktion dayRate beziehen sich auf Geld.
Die Maßeinheiten sind Geld pro Zeiteinheit: Stunden bzw. Tage.
Ein Kunde kontaktiert den Freelancer, um sich nach seinen Sätzen zu erkundigen. Der Freelancer erklärt, dass er 8 Stunden am Tag arbeitet. Allerdings kennt der Freelancer nur seine Stundensätze für das Projekt. Hilf ihm, aus einem Stundensatz einen Tagessatz zu schätzen.
dayRate(89);
// => 712
Der Tagessatz muss nicht gerundet oder auf eine „feste“ Genauigkeit gebracht werden.
An einem anderen Tag bietet ein Projektmanager dem Freelancer an, an einem Projekt mit festem Budget zu arbeiten. Berechne anhand des festen Budgets und des Stundensatzes des Freelancers die Anzahl der Tage, die er arbeiten würde, bis das Budget aufgebraucht ist. Das Ergebnis muss auf die nächste ganze Zahl abgerundet werden.
daysInBudget(20000, 89);
// => 28
Häufig beauftragen die Kunden des Freelancers ihn mit Projekten, die sich über mehrere Monate erstrecken.
In diesen Fällen beschließt der Freelancer, für jeden vollen Monat einen Rabatt anzubieten, und die verbleibenden Tage werden zum Tagessatz abgerechnet.
Deine hervorragende Work-Life-Balance bedeutet, dass du in jedem Kalendermonat nur 22 Tage arbeitest, also hat jeder Monat 22 abrechenbare Tage.
Hilf ihm, die Kosten für solche Projekte zu schätzen, wenn ein Stundensatz, die Anzahl der abrechenbaren Tage des Projekts und ein monatlicher Rabattsatz gegeben sind.
Der Rabatt wird immer als Zahl übergeben, wobei aus 42% 0.42 wird. Das Ergebnis muss auf die nächste ganze Zahl aufgerundet werden.
priceWithMonthlyDiscount(89, 230, 0.42);
// => 97972
Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.