Decimālzīmju noņemšana no JavaScript funkcijas atgriešanas: vienkāršs ceļvedis

Temp mail SuperHeros
Decimālzīmju noņemšana no JavaScript funkcijas atgriešanas: vienkāršs ceļvedis
Decimālzīmju noņemšana no JavaScript funkcijas atgriešanas: vienkāršs ceļvedis

Decimāldaļu problēmu apstrāde JavaScript funkcijās

Rakstot JavaScript funkcijas, bieži rodas problēmas, kas saistītas ar decimālskaitļiem, it īpaši, veicot dalīšanas darbības. Izstrādātājiem, kuriem ir nepieciešams tīrs un vesels skaitlis, ir svarīgi saprast, kā pārvaldīt šos decimāldaļskaitļus.

Šajā rokasgrāmatā mēs izpētīsim, kā modificēt JavaScript funkciju, lai nodrošinātu, ka atgriešanas vērtība ir vesels skaitlis neatkarīgi no tā, vai sākotnējā aprēķinā ir izmantotas decimāldaļas. Tas ir izaicinājums, ar kuru saskaras daudzi iesācēji, strādājot ar funkcijām, kas ietver aprēķinus, piemēram, attiecību vai vidējo vērtību noteikšana.

Problēma bieži rodas no skaitļu dalīšanas, kas nerada vesela skaitļa rezultātu. Piemēram, aprēķinot vidējo skolēnu skaitu uz vienu pedagogu, var iegūt decimāldaļu, kas dažos gadījumos var nebūt vēlama. Šo decimāldaļu noņemšana vai noapaļošana ir izplatīts uzdevums, lai uzlabotu izvades lasāmību un lietojamību.

Mēs apskatīsim procesu, kā izmantot JavaScript iebūvētās matemātikas funkcijas, piemēram, Math.round(), Math.floor(), un Math.ceil(), lai noņemtu decimāldaļas un atgrieztu veselu skaitli. Beigās jūs sapratīsit, kā formatēt savas funkcijas atdevi, lai tā atbilstu jūsu īpašajām vajadzībām.

Komanda Lietošanas piemērs
Math.round() Šī komanda noapaļo decimālo skaitli līdz tuvākajam veselajam skaitlim. Tas ir noderīgi, ja dalīšanas rezultātam ir jābūt veselam skaitlim, nevis peldošā komata skaitlim. Mūsu piemērā Math.round(13.666) atgriež 14.
Math.floor() Tas noapaļo decimāldaļu uz leju līdz tuvākajam veselam skaitlim, pat ja decimāldaļa ir lielāka par 0,5. Math.floor (13.666) rezultāts būtu 13, faktiski atmetot decimāldaļu.
Math.ceil() Šī komanda noapaļo decimālskaitli līdz nākamajam veselajam skaitlim neatkarīgi no tā decimāldaļas. Piemēram, Math.ceil(13.1) iegūst 14.
assert.strictEqual() Izmantojot Node.js, šī metode pārbauda, ​​vai divas vērtības ir stingri vienādas. To bieži izmanto vienību pārbaudēs, lai pārbaudītu, vai funkcija atgriež gaidīto rezultātu. Mūsu skriptā assert.strictEqual(studentsPerAdmin(41,1,2), 14) pārbauda, ​​vai funkcija atgriež 14, kad tiek izsaukta ar šiem argumentiem.
console.log() Šis ir atkļūdošanas rīks, kas drukā ziņojumus vai vērtības pārlūkprogrammas konsolē. Tas ir īpaši noderīgi, lai parādītu dinamiskus ziņojumus, piemēram, console.log ("Diemžēl šī klase..."), lai lietotājiem paziņotu funkciju rezultātus.
prasīt () Šī komanda tiek izmantota failā Node.js, lai importētu moduļus vai bibliotēkas. Mūsu gadījumā const assert = request('assert'); tiek izmantots, lai iekļautu iebūvēto apgalvot modulis vienību testu veikšanai.
Veidņu burti Veidņu literāļi, kas ietverti ar atzīmes (`), ļauj iegult izteiksmes virknēs. Mūsu funkcijā 'Ir vidēji ${average} studenti' dinamiski ievieto vidējo vērtību virknē.
Nodaļas operators (/) Šis operators dala vienu skaitli ar citu. Skolēniem / (skolotāji + palīgi) skolēnu skaitu dala ar skolotāju un palīgu summu, lai aprēķinātu vidējo skolēnu skaitu uz vienu pedagogu.

Izpratne par JavaScript metodēm decimāldaļu noņemšanai

Strādājot ar JavaScript funkcijām, kas atgriež decimāldaļas, piemēram, studentiPerAdmin funkciju, ir svarīgi saprast, kā modificēt rezultātus, lai iegūtu veselus skaitļus. Šajā funkcijā vidējo skolēnu skaitu uz vienu pedagogu aprēķina, dalot skolēnu skaitu ar skolotāju un palīgu summu. Tomēr, tā kā dalīšanas rezultātā bieži tiek iegūtas decimāldaļas, šo rezultātu apstrādei ir nepieciešamas dažādas matemātiskas metodes. Izaicinājums ir noapaļot vai saīsināt decimāldaļu, lai tā atbilstu kontekstam, kurā ir noderīgs tikai vesels skaitlis, piemēram, ziņojot, cik skolēnu ir piešķirti vienam skolotājam.

Pirmā piemērā izmantotā pieeja ir Math.round(). Šī metode noapaļo decimālskaitli līdz tuvākajam veselajam skaitlim. Piemēram, ja vidējais rādītājs ir 13,666, Math.round atgriezīs 14, jo decimāldaļa ir lielāka par 0,5. Šī metode ir noderīga gadījumos, kad vēlaties saglabāt precizitāti, vienlaikus vienkāršojot numuru. Cita pieeja ir Math.floor(), kas vienmēr noapaļo skaitli uz leju. Tas tiek lietots, ja vēlaties pilnībā atmest decimāldaļu, piemēram, tajā pašā piemērā atgriezt 13 neatkarīgi no decimāldaļas.

No otras puses, Math.ceil() kalpo pretējam mērķim Math.floor(), vienmēr noapaļojot skaitli uz augšu līdz tuvākajam veselajam skaitlim. Šī metode ir ideāla, ja vēlaties nodrošināt, ka vērtība nekad nav zemāka par veselo skaitļu daļu. Piemēram, ja vidējais rādītājs ir 13,1, Math.ceil() atgriezīs 14, pat ja decimāldaļa ir diezgan maza. Šīs metodes nodrošina elastību atkarībā no jūsu aprēķina īpašajām vajadzībām. Neatkarīgi no tā, vai mērķis ir noapaļot līdz tuvākajam, noapaļot uz leju vai noapaļot uz augšu, katra funkcija kalpo noteiktam mērķim.

Turklāt, izmantojot assert.strictEqual() vienību testos nodrošina, ka funkcijas darbojas, kā paredzēts. Šī komanda ir svarīga, lai pārbaudītu, vai jūsu funkcijas izvade atbilst paredzamajam rezultātam dažādos testa gadījumos. Tas darbojas kā drošības līdzeklis, ļaujot izstrādātājiem ātri pārbaudīt, vai viņu veiktās izmaiņas pārkāpj funkcionalitāti. Apvienojumā ar prasīt () nepieciešamo moduļu importēšanai šie testi pievieno papildu validācijas slāni, nodrošinot koda uzticamību ražošanas vidēs. Iekļaujot šīs metodes, kods ir ne tikai precīzs, bet arī rūpīgi pārbaudīts un gatavs dažādiem lietošanas scenārijiem.

Vairākas pieejas decimāldaļu noņemšanai no JavaScript funkcijas atgriešanas

JavaScript izmantošana ar priekšgala ieviešanu

// Solution 1: Using Math.round() to round to the nearest integer
function studentsPerAdmin(students, teachers, helpers) {
  const average = students / (teachers + helpers);
  const roundedAverage = Math.round(average);
  if (roundedAverage > 10) {
    console.log(`There are on average ${roundedAverage} students for each educator.`);
  } else {
    console.log('Unfortunately this class will be cancelled due to not having enough students enrolled.');
  }
  return roundedAverage;
}
studentsPerAdmin(41, 1, 2); // Result: 14 students for each educator

Decimālzīmju apstrāde dažādos veidos, izmantojot JavaScript

JavaScript izmantošana ar dažādām matemātikas metodēm

// Solution 2: Using Math.floor() to always round down
function studentsPerAdmin(students, teachers, helpers) {
  const average = students / (teachers + helpers);
  const flooredAverage = Math.floor(average);
  if (flooredAverage > 10) {
    console.log(`There are on average ${flooredAverage} students for each educator.`);
  } else {
    console.log('Unfortunately this class will be cancelled due to not having enough students enrolled.');
  }
  return flooredAverage;
}
studentsPerAdmin(41, 1, 2); // Result: 13 students for each educator

Veselu skaitļu nodrošināšana JavaScript funkcijas atgriešanā

JavaScript un Math.ceil() izmantošana noapaļošanai

// Solution 3: Using Math.ceil() to always round up
function studentsPerAdmin(students, teachers, helpers) {
  const average = students / (teachers + helpers);
  const ceiledAverage = Math.ceil(average);
  if (ceiledAverage > 10) {
    console.log(`There are on average ${ceiledAverage} students for each educator.`);
  } else {
    console.log('Unfortunately this class will be cancelled due to not having enough students enrolled.');
  }
  return ceiledAverage;
}
studentsPerAdmin(41, 1, 2); // Result: 14 students for each educator

Testa skripts derīguma pārbaudei dažādās vidēs

Vienību testi back-end validācijai pakalpojumā Node.js

// Unit Test for verifying all solutions
const assert = require('assert');
assert.strictEqual(studentsPerAdmin(41, 1, 2), 14);  // Using Math.round()
assert.strictEqual(studentsPerAdmin(30, 1, 2), 10);  // Using Math.floor()
assert.strictEqual(studentsPerAdmin(35, 1, 2), 12);  // Using Math.ceil()
console.log('All tests passed!');

Decimāldaļu apstrāde sarežģītos JavaScript scenārijos

Lai gan JavaScript noapaļošana ir izplatīta nepieciešamība, ir arī citi scenāriji, kuros decimālzīmju pārvaldībai nepieciešama lielāka kontrole. Viena no svarīgākajām metodēm ir darbs ar to Fixed(). Šī metode ļauj norādīt, cik ciparu aiz komata vēlaties, noapaļojot skaitli līdz tuvākajai vērtībai, vienlaikus nodrošinot konsekventu attēlojuma formātu. Piemēram, number.toFixed(2) vienmēr atgriezīs skaitli ar divām zīmēm aiz komata, padarot to ideāli piemērotu situācijām, kurās ir svarīga precizitāte, piemēram, valūtas aprēķini vai zinātniski mērījumi.

Vēl viens svarīgs jēdziens ir tas, kā JavaScript apstrādā peldošā komata aritmētiku. Tā kā skaitļi tiek saglabāti atmiņā, darbības ar decimāldaļām dažkārt var radīt negaidītus rezultātus, īpaši, ja tiek salīdzināti divi peldošā komata skaitļi. Piemēram, 0.1 + 0.2 nav gluži vienāds 0.3 JavaScript, kas var radīt problēmas noteiktos aprēķinos. Izpratne par šīm niansēm var palīdzēt izvairīties no kļūdām kodā, īpaši, veicot finanšu vai statistikas aprēķinus.

Turklāt, ja jums ir nepieciešams pilnībā noņemt decimāldaļas bez noapaļošanas, varat izmantot bitu operatorus, piemēram, ~~ (dubultā tilde), kas efektīvi saīsina skaitļa decimāldaļu. Šī pieeja darbojas, jo bitu operatori procesā pārvērš skaitli par veselu skaitli. Piemēram, ~~13.666 rezultātus ~~13.99. Šo metodi izmanto retāk, taču tā nodrošina ātru veidu, kā sasniegt mērķi saīsināt decimāldaļas, ja veiktspējai ir izšķiroša nozīme.

Bieži uzdotie jautājumi par decimāldaļu pārvaldību JavaScript

  1. Kā JavaScript noapaļot skaitli līdz tuvākajam veselam skaitlim?
  2. Jūs varat izmantot Math.round() lai noapaļotu skaitli līdz tuvākajam veselam skaitlim. Piemēram, Math.round(13.6) atgriežas 13.
  3. Kā vienmēr JavaScript noapaļot decimāldaļu uz leju?
  4. Lai vienmēr noapaļotu uz leju, varat izmantot Math.floor(). Piemēram, Math.floor(13.9) atgriezīsies ~~13.99, ignorējot decimāldaļu.
  5. Kāds ir labākais veids, kā noņemt decimāldaļas bez noapaļošanas?
  6. Izmantojot bitu operatoru ~~ ir efektīvs veids, kā noņemt decimāldaļas bez noapaļošanas. Piemēram, 13 rezultātus ~~13.99.
  7. Vai es varu kontrolēt JavaScript zīmju skaitu aiz komata?
  8. Jā, jūs varat izmantot toFixed() lai norādītu, cik ciparu aiz komata vēlaties. Piemēram, 13.666.toFixed(2) atgriezīsies 13.67.
  9. Kāpēc dara 0.1 + 0.2 nav vienāds 0.3 JavaScript?
  10. Tas ir saistīts ar to, kā JavaScript apstrādā peldošā komata aritmētiku. Skaitļi tiek saglabāti tā, ka dažkārt rodas nelielas precizitātes kļūdas.

Pēdējās domas par decimālzīmju pārvaldību JavaScript

Strādājot ar JavaScript, decimālskaitļu izmantošana dažkārt var radīt neskaidrības, īpaši funkcijās, kurām nepieciešami veselu skaitļu rezultāti. Izmantojot noapaļošanas funkcijas, piemēram, Math.round(), vai decimāldaļu saīsināšana, izmantojot bitu operatorus, nodrošina izstrādātājiem elastīgus rīkus, lai efektīvi atrisinātu šo problēmu.

Apgūstot šīs JavaScript metodes, jūs varēsit kontrolēt, kā tiek parādītas skaitliskās vērtības, un nodrošināt, ka jūsu funkcijas sniedz skaidrus, precīzus rezultātus. Neatkarīgi no tā, vai veicat noapaļošanu uz augšu, uz leju vai saīsināšanu, pareizās metodes izvēle nodrošina, ka kods joprojām ir precīzs un lasāms.

Avoti un atsauces
  1. Izstrādāts par lietošanu JavaScript matemātikas funkcijas patīk Math.round(), Math.floor(), un Math.ceil() decimāldaļu noapaļošanai JavaScript. MDN tīmekļa dokumenti — JavaScript matemātika
  2. Atsauce, ko izmanto, lai izskaidrotu uzvedību peldošā komata aritmētika JavaScript un kāpēc dažos aprēķinos ir svarīga decimālā precizitāte. Peldošā komata ceļvedis
  3. Apraksta bitu operatoru izmantošanu, lai saīsinātu decimālvērtības bez noapaļošanas JavaScript. JavaScript.info — bitu operatori