Languages
[Edit]
PL

JavaScript - Math.round() - przykład metody z dokumentacją

1 points
Created by:
Sylwia
3590

Math.round jest metodą statyczną, która zwraca liczbę zaokrągloną do najbliższej liczby całkowitej.

// ONLINE-RUNNER:browser;

console.log( Math.round(  5     ) ); //  5

console.log( Math.round(  2.49  ) ); //  2
console.log( Math.round(  2.50  ) ); //  3
console.log( Math.round(  2.51  ) ); //  3

console.log( Math.round( -2.49  ) ); // -2
console.log( Math.round( -2.50  ) ); // -2
console.log( Math.round( -2.51  ) ); // -3

console.log( Math.round(  0.999 ) ); //  1
console.log( Math.round(  1.001 ) ); //  1
console.log( Math.round( -1.001 ) ); // -1

1. Dokumentacja

SkładniaMath.round(number)
Parametrynumber - liczba całkowita lub zmiennoprzecinkowa (wartość pierwotna).
WynikWartość liczbowa zaokrąglona (wartość pierwotna).
Opisround jest metodą statyczną, która zwraca liczbę zaokrągloną do najbliższej liczby całkowitej.

2. Przykłady niestandardowych metod zaokrągleń

2.1. Przykład zaokrąglenia z dokładnością do n miejsc

Ta sekcja zawiera funkcję niestandardową, która pokazuje, jak zaokrąglić liczbę z dokładnością do n miejsc.

// ONLINE-RUNNER:browser;

function roundPrecised(number, precision) {
	var power = Math.pow(10, precision);

  	return Math.round(number * power) / power;
}

// Przykład:

console.log( roundPrecised(     5  ,  0 ) ); // 5
console.log( roundPrecised(     5. ,  0 ) ); // 5
console.log( roundPrecised(      .5,  0 ) ); // 1

console.log( roundPrecised(  1.2345,  0 ) ); // 1
console.log( roundPrecised(  1.2345,  1 ) ); // 1.2
console.log( roundPrecised(  1.2345,  2 ) ); // 1.23
console.log( roundPrecised(  1.2345,  3 ) ); // 1.235

console.log( roundPrecised( -1.2345,  0 ) ); // -1
console.log( roundPrecised( -1.2345,  1 ) ); // -1.2
console.log( roundPrecised( -1.2345,  2 ) ); // -1.23
console.log( roundPrecised( -1.2345,  3 ) ); // -1.234

console.log( roundPrecised(   12345, -1 ) ); // 12350
console.log( roundPrecised(   12345, -2 ) ); // 12300
console.log( roundPrecised(   12345, -3 ) ); // 12000

2.2. Przykład wdrożenia zaokrąglenia VanillaJS

Ta sekcja zawiera implementację niestandardowej funkcji roundNumber

// ONLINE-RUNNER:browser;

function roundNumber(value) {
  	if (value < 0.0) {
      	var rest = (value % 1.0);
      
      	if(rest < -0.5) {
        	rest += 1.0;
        }
      
    	return value - rest;
    } else {
    	value += 0.5;

    	return value - (value % 1.0);
  	}
}

// Przykład:

console.log( roundNumber(  5     ) ); //  5

console.log( roundNumber(  2.49  ) ); //  2
console.log( roundNumber(  2.50  ) ); //  3
console.log( roundNumber(  2.51  ) ); //  3

console.log( roundNumber(  0.999 ) ); //  1
console.log( roundNumber(  1.001 ) ); //  1

console.log( roundNumber( -2.49  ) ); // -2
console.log( roundNumber( -2.50  ) ); // -2
console.log( roundNumber( -2.51  ) ); // -3

console.log( roundNumber( -1.001 ) ); // -1

3. Przykład rysowania na elemencie canvas

Poniżej przedstawiono prosty wykres dla funkcji Math.round.

// ONLINE-RUNNER:browser;

<!doctype html>
<html>
<head>
  <style> #canvas { border: 1px solid black; } </style>
</head>
<body>
  <canvas id="canvas" width="200" height="200"></canvas>
  <script>
    
    var canvas = document.querySelector('#canvas');
    var context = canvas.getContext('2d');

    // Zakres wykresu cosinus
    var x1 = -10.0;
    var x2 = +10.0;
    var y1 = -10.0;
    var y2 = +10.0;

    var dx = 0.01;

    var xRange = x2 - x1;
    var yRange = y2 - y1;

    function calculatePoint(x) {
      var y = Math.round(x);

      // wykres zostanie odwrócony poziomo z powodu odwróconych pikseli obszaru roboczego

      var nx = (x - x1) / xRange;       // znormalizowane x
      var ny = 1.0 - (y - y1) / yRange; // znormalizowane y
      
      var point = {
        x: nx * canvas.width,
        y: ny * canvas.height
      };

      return point;
    }

    console.log('x range: <' + x1 + '; ' + x2 + '>');
    console.log('y range: <' + y1 + '; ' + y2 + '>');

    var point = calculatePoint(x1);
    
    context.beginPath();
    context.moveTo(point.x, point.y);

    for (var x = x1 + dx; x < x2; x += dx) {
      point = calculatePoint(x);
      context.lineTo(point.x, point.y);
    }

    point = calculatePoint(x2);
    context.lineTo(point.x, point.y);
    context.stroke();

  </script>
</body>
</html>

 

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

JavaScript - obiekt Math (PL)

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join