Есть ли способ округлить число, т.е. если его 2.3 и выше он должен оставаться равным 2, но если оно больше 2.9, оно должно округлить до 3. Не знаю, как бы я их сделал работа с Math.round, так как это всегда делает ее равной 3 после 2.4. Благодарю.Округление до 0,9 в javascript
ответ
Один из способов, чтобы добавить смещение сместить округление «стержень» от 0,5 до 0,9. Если x
это число округлить затем использовать
Math.round(x - 0.4)
@Downvoter (s): мне нужен кофе? Какое требование это не удовлетворяет? (У меня была опечатка в первом черновике.) – Bathsheba
Это правильный ответ, не знаю, почему есть downvoter (s). Нет необходимости использовать пользовательскую функцию round, как показано в других ответах, но ее достаточно, как в вашем ответе. – Legionar
Вы уже знаете, что сделали опечатку, которая сделала код неправильным. Теперь, когда вы установили опечатку, пониженные голоса были отменены. Система работает. – JJJ
вы могли бы иметь вспомогательный метод, как показано ниже
function Extended_Roundoff(num, decimal_threshold){
var decimal_part = num - Math.floor(num);
if(decimal_part >= decimal_threshold){
return Math.ceil(num);
}else{
return Math.floor(num);
}
}
console.log(Extended_Roundoff(2.3, 0.9));
console.log(Extended_Roundoff(2.95, 0.9));
Не совсем поймать первое условие: (?), Если 2,3 и больше он должен вернуть 2.
Так здесь есть функция , что округляет числа с фракцией> 0,9
function customRound(number){
return (number-(~~number))>0.9 ? ~~number+1 : ~~number;
}
, если он меньше 2.9, тогда он должен округлить до 2, а если 2.9 или больше, это должно стать 3. Спасибо – aditya063
что должно стать 7.9? –
И почему downvotes? Рабочий ответ ... –
function customRound(v) {
return Math.round(v-0.4);
};
если v велико меньше X.9, я т возвращает е
customRound(2.1) // 2
customRound(2.8) // 2
customRound(2.89) // 2
еще, если v является большим, чем X.9, он retuans х +-
customRound(2.91) // 3
И вы можете пользовательское смещение, как вам нравится.
UV'd. По существу мой ответ, но с некоторыми объяснениями. (Хотя лично я не стал бы обертывать отдельную функцию - для меня поведение «Math.round (v - 0.4)» более очевидно на сайте вызова, чем «customRound (v))» – Bathsheba
Это вернет 24 и если Num 23,6 вернется 23
var num = 23.9;
var nr = num % Math.floor(num)
nr = Math.round(nr * 100)/100
if(nr >=0.9){
num = Math.floor(num+1);
}else{
num = Math.floor(num);
}
alert(num);
- 1. округление до сотни с JavaScript
- 2. Округление до ближайшего 0.05 в JavaScript
- 3. Округление Дата до ближайшего дня в Javascript.
- 4. Округление до произвольных уровней точности в JavaScript
- 5. Округление в диапазоне в Javascript
- 6. Развертывание чистого метеора 0,9 до heroku
- 7. Округление до преобразования VarChar
- 8. Округление до ближайшей сотни
- 9. Округление до C#
- 10. C++: округление до 64kb
- 11. Округление до ближайшего доллара
- 12. Округление до ближайших пяти
- 13. Округление числа до десяти
- 14. дата Округление до
- 15. Округление до нуля
- 16. Swift Округление до Двойной
- 17. Округление до 100 единиц
- 18. округление до целого числа
- 19. Округление до ближайшего 100
- 20. Округление до 0,5 в SQL
- 21. Округление числа до десятичных разрядов
- 22. javascript округление на 500
- 23. Округление гауссов/банкиров в JavaScript
- 24. Округление в Javascript до 2 знаков после запятой
- 25. округление до произвольного числа значащих цифр в JavaScript не работает
- 26. JavaScript округление до 1 десятичного знака в атрибуте встроенного стиля
- 27. JavaScript Округление не работает
- 28. Округление расчетной цены в javascript
- 29. ClusterDump в Mahout 0,9
- 30. ExportAssignment в машинописном 0,9
Больше, чем 2,9 или больше или больше или равен 2,9? Кроме того, я сомневаюсь, что раунды Math.round от 2.41 до 3. – Bathsheba
Больше, чем 2.9, должно стать равным 3, но если оно меньше 2 – aditya063
Вы можете создать пользовательскую функцию, которая может реализовать эту логику, а вместо Math.round u can вызовите эту функцию. function customRound (a) {if (a * 10% 10> = 3 && a * 10% 10 <= 9) {return a - (a% 10); } else {return a + (10 - a% 10); }}; – g9m29