Целая часть при делении javascript

Как поделить число нацело в javascript?

И вот такой, но с ним лучше быть осторожнее — работает лишь для небольших чисел (где-то до 4e9):

Всё зависит от того, как вы хотите округлить результат деления.

Math.floor(a/b); Math.floor(3/2); // = 1 
Math.ceil(a/b); Math.ceil(3/2); // = 2; 

Поделить на число без остатка в JS можно несколькоми способами.

Способ 1. Округление:

var x = 10, y = 3.3333; alert(Math.floor(x/y)); 

Этот способ расчитан на результат вычисления больше нуля. Если результат будет отрицательный, то такая конструкция сработает не правильно.

Math.floor(-100/3); // Выдаст -34, хотя целая часть от -33,33333336 будет равна -33 

Как вариант, для решения этой задачи округлением можно использовать опертор if:

if(x/y>=0) alert(Math.floor(x/y)); else alert(Math.ceil(x/y)); 

Способ 2 : Вероятно не такой быстрый как предыдущий, но более универсальный. Приведение к int:

var x = 10, y = 3.3333; alert(parseInt(x/y)); 

Способ 3. Производительный и универсальный:

var x = 10, y = 3.3333; function div(val, by) < return (val - val % by) / by; >alert(div(x, y)); 

Ну и немного хадкора:

alert(~~(x/y)) // сокращенный Math.floor() результаты будут такие же alert(x/y>>0) alert(x/y|0) 

В javascript отсутствует деление на целые числа и числа с плавающей запятой.
Возможно, как следствие, отсутствуют и специальные арифметические операторы для целый чисел.

Исходя из этого есть несколько вариантов решения:

    Выполнение обычного деления и взятие от результата целой части. Для этой процедуры есть функции Math.floor и Math.ceil, разница заключается в том, большее целое или меньшее будет выбрано.

console.log(Math.floor(10 / 3)); console.log(Math.floor(-10 / 3)); console.log(Math.ceil(10 / 3)); console.log(Math.ceil(-10 / 3)); 
console.log((10 / 3) | 0); console.log((-10 / 3) | 0); console.log((10 / 3) >> 0); console.log((-10 / 3) >> 0); console.log(' Неожиданно: ', (10000000000 / 2) | 0) console.log(' Неожиданно: ', (10000000000 / 2) >> 0) 

Воспользуйтесь функицией Math.trunc(x);

Math.trunc(13.37); // 13 Math.trunc(42.84); // 42 Math.trunc(0.123); // 0 Math.trunc(-0.123); // -0 Math.trunc('-1.123'); // -1 

Источник

JavaScript. Остаток от деления и деление без остатка

В этом посте мы рассмотрим как получить остаток и целое от деления в JS.

Остаток от деления (деление по модулю)

Чтобы получить остаток от деления мы можем воспользоваться оператором %

console.log(20 % 3) // 2 (3 * 6 = 18)

Как видно из примера, мы получим 2 — это и будет остаток от деления.

Где такое может понадобиться? Как пример, если в цикле вы будете генерировать строки таблицы и каждую 3 строку вам нужно будет стилизовать:

В данном примере показана каждая третья строка, но можно также сделать и с другим числом:

if (i % 2 === 0) — каждая вторая строка
if (i % 5 === 0) — каждая пятая строка
if (i % 10 === 0) — каждая 10я строка и т.д.

Другой пример, когда вам нужно проверить делимость числа например на 10 и 100 без остатка:

if (num % 10 === 0 && num % 100 === 0)

Деление без остатка

Чтобы получить целое число от деления можно использовать несколько вариантов.

Первый вариант, наиболее очевидный, это округление числа после операции деления:

let num1 = 10, num2 = 3; console.log(Math.floor(num1/num2)); // 3 (округление в меньшую сторону) console.log(Math.ceil(num1/num2)); // 4 (округление в большую сторону) console.log(Math.round(num1/num2)); // 3 (математическое округление) console.log(+(num1/num2).toFixed(0)); // 3 (математическое округление) console.log(parseInt((num1/num2))); // 3 (приведение к числу, будет отброшена дробная часть)

Подробнее про разные способы округления чисел (в меньшую и в большую сторону) можете прочитать по ссылке.

Еще один вариант, предложенный пользователем в комментариях:

Также есть другие варианты, с использованием битовых операций:

let num1 = 10, num2 = 3; console.log((num1/num2) | 0); // 3 console.log((num1/num2) >> 0); // 3

Задача. Функция для определения простого числа

Давайте теперь на примере посмотрим, как можно использовать остаток от деления для решения такой задачи. Простое число: это положительное число, которое делиться только на самого себя и на 1.

Итак, напишем функцию, которая на вход принимает какое-то число, дальше в цикле начиная с 2 (т.к. на единицу итак все делиться), пока счетчик меньше передаваемого числа, проверяем будет ли num делиться без остатка. Если делиться, значит num не является простым числом:

function isPrime(num) < for (let i = 2; i < num; i++) < if (num % i === 0) < return false; >> return num > 1; > console.log(isPrime(1)); // false console.log(isPrime(2)); // true console.log(isPrime(3)); // true console.log(isPrime(4)); // false console.log(isPrime(5)); // true

Ваши вопросы и комментарии:

Свежие записи

Копирование материалов разрешено только с ссылкой на источник Web-Dev.guru
2023 © Все права защищены.

Источник

Целочисленное деление в JavaScript

Целочисленное деление в JavaScript

  1. Получите частное и остаток от целочисленного деления с помощью библиотеки Math в JavaScript
  2. Получите частное и остаток от целочисленного деления с помощью побитовых операторов в JavaScript

В этом руководстве будет обсуждаться, как получить частное и остаток от деления с помощью библиотеки Math и побитовых операторов в JavaScript.

Получите частное и остаток от целочисленного деления с помощью библиотеки Math в JavaScript

В JavaScript мы можем легко разделить две переменные, и результат будет в виде чисел с плавающей запятой, но если мы хотим получить частное и остаток от деления, мы можем использовать библиотеку Math , предоставляющую нам множество функций. . Например, мы можем получить частное от деления с помощью функции Math.floor() или Math.trunc() , которая преобразует число с плавающей запятой в целое число, а чтобы получить остаток, мы можем использовать % персонаж. Например, давайте найдем частное и остаток от 13, разделенного на 5. См. Код ниже.

var a = 13; var b = 5; var quo = Math.floor(a/b); var rem = a%b; console.log('Quotient = ',quo,'Remainder = ',rem); 

Обратите внимание, что библиотека Math выйдет из строя, если числа будут слишком большими. Вы также можете использовать функцию Math.trunc() , которая может обрабатывать большие числа по сравнению с функцией Math.floor() . Функция Math.floor() не сработает в случае отрицательных чисел, но Math.trunc() не выйдет из строя в случае отрицательных чисел.

Получите частное и остаток от целочисленного деления с помощью побитовых операторов в JavaScript

В JavaScript мы можем получить частное и остаток от деления с помощью побитовых операторов. Например, мы можем получить частное от деления, используя побитовое NOT ~~ или побитовое OR |0 , которое преобразует число с плавающей запятой в целое. А чтобы получить остаток, мы можем использовать символ % . Например, давайте найдем частное и остаток от 13, разделенного на 5. См. Код ниже.

var a = 13; var b = 5; var quo = ~~(a/b); var rem = a%b; console.log('Quotient = ',quo,'Remainder = ',rem); 

Как видите, результат такой же, как и у описанного выше метода. Производительность поразрядных операторов выше по сравнению с библиотекой Math , но способность обрабатывать большие числа меньше. Итак, если у вас маленькие числа, вы можете использовать побитовые операторы; в противном случае используйте библиотеку Math . Побитовые операторы также могут обрабатывать отрицательные числа. Вы также можете использовать функцию parseInt() для преобразования числа с плавающей запятой в целое число. Если вы не хотите использовать какие-либо функции, вы можете использовать простую формулу с оператором остатка % , как показано ниже.

var a = 13; var b = 5; var rem = a%b; var quo = (a-rem)/b; console.log('Quotient = ',quo,'Remainder = ',rem); 

Как видите, результат такой же, как и у описанных выше методов.

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

Источник

Division (/)

The division ( / ) operator produces the quotient of its operands where the left operand is the dividend and the right operand is the divisor.

Try it

Syntax

Description

The / operator is overloaded for two types of operands: number and BigInt. It first coerces both operands to numeric values and tests the types of them. It performs BigInt division if both operands becomes BigInts; otherwise, it performs number division. A TypeError is thrown if one operand becomes a BigInt but the other becomes a number.

For BigInt division, the result is the quotient of the two operands truncated towards zero, and the remainder is discarded. A RangeError is thrown if the divisor y is 0n . This is because number division by zero returns Infinity or -Infinity , but BigInt has no concept of infinity.

Examples

Basic division

1 / 2; // 0.5 Math.floor(3 / 2); // 1 1.0 / 2.0; // 0.5 1n / 2n; // 0n 5n / 3n; // 1n -1n / 3n; // 0n 1n / -3n; // 0n 2n / 2; // TypeError: Cannot mix BigInt and other types, use explicit conversions // To do division with a BigInt and a non-BigInt, convert either operand 2n / BigInt(2); // 1n Number(2n) / 2; // 1 

Division by zero

2.0 / 0; // Infinity 2.0 / 0.0; // Infinity, because 0.0 === 0 2.0 / -0.0; // -Infinity 2n / 0n; // RangeError: Division by zero 

Specifications

Browser compatibility

BCD tables only load in the browser

See also

Found a content problem with this page?

This page was last modified on Mar 28, 2023 by MDN contributors.

Your blueprint for a better internet.

MDN

Support

Our communities

Developers

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Источник

Читайте также:  Php error fatal error cannot redeclare class
Оцените статью