Округление до ближайшего 0,5, не 0,0 - PullRequest
0 голосов
/ 23 апреля 2019

Как найти ближайшее значение nb.5?

Исключая .0 значения,

Пример,

round(1.0) = 1.5
round(1.99) = 1.5
round(2.0) = 2.5

Ответы [ 4 ]

5 голосов
/ 23 апреля 2019

Вы можете добавить 0.5 к значению, возвращенному Math.floor():

const round = (number) => Math.floor(number) + 0.5

console.log(round(1.0))
console.log(round(1.99))
console.log(round(2.0))
4 голосов
/ 23 апреля 2019

Math.floor(value) + 0.5 должен это сделать.

Кроме того, вы должны уточнить свои спецификации ... Поскольку ближайшее значение 0,5 для 2 равно 1,5 И 2,5, они оба находятся на одном и том же «расстоянии».

Я понимаю, что ваш пример имеет дело с этим сценарием, переходя к ближайшему верхнему значению 0,5, но действительно ли это то, что вы хотите?

0 голосов
/ 23 апреля 2019

Для достижения ожидаемого результата используйте опцию ниже, используя Math.trunc - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc

let round = (val) => Math.trunc(val) + 0.5
console.log(round(1.99))
console.log(round(1))
console.log(round(2))
0 голосов
/ 23 апреля 2019

function round(num) {
    return Math.round((num % 10)) + 0.5
}

console.log(round(1));
console.log(round(1.99));
console.log(round(2));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...