Функции Math.round () и .toFixed () предназначены для округления до ближайшего целого числа. Вы получите неверные результаты при работе с десятичными знаками и использовании метода «умножить и разделить» для Math.round () или параметра для .toFixed (). Например, если вы попытаетесь округлить 1,005, используя Math.round (1.005 * 100) / 100, вы получите результат 1, а 1,00 - .toFixed (2) вместо того, чтобы получить правильный ответ 1,01.
Вы можете использовать следующее для решения этой проблемы:
Number(Math.round(100 - (price / listprice) * 100 + 'e2') + 'e-2');
Добавьте .toFixed (2), чтобы получить два десятичных знака, которые вы хотели.
Number(Math.round(100 - (price / listprice) * 100 + 'e2') + 'e-2').toFixed(2);
Вы можете создать функцию, которая будет обрабатывать округление для вас:
function round(value, decimals) {
return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);
}
Пример: https://jsfiddle.net/k5tpq3pd/36/
Альтернатива
Вы можете добавить функцию округления к числу, используя прототип. Я бы не советовал добавлять здесь .toFixed (), так как он возвращает строку вместо числа.
Number.prototype.round = function(decimals) {
return Number((Math.round(this + "e" + decimals) + "e-" + decimals));
}
и используйте его так:
var numberToRound = 100 - (price / listprice) * 100;
numberToRound.round(2);
numberToRound.round(2).toFixed(2); //Converts it to string with two decimals
Пример https://jsfiddle.net/k5tpq3pd/35/
Источник: http://www.jacklmoore.com/notes/rounding-in-javascript/
Проверьте, отключили ли вы управление питанием, используя:
iwconfig
. Если управление питанием включено, отключите его (временно), используя:
sudo iwconfig wlan0 power off
. Это сработало для меня (I). иметь адаптер D-Link DWL-G122).
Если вы хотите постоянно отключать управление питанием, вы должны иметь /etc/rc.local следующим образом:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 10
iwconfig wlan0 power off
exit 0
Здесь вы можете добавить команды, которые вы хотите запускать при запуске, но последняя строка должна быть всегда выход 0
Отключение управления питанием решило это и для меня в Ubuntu 16.04.
Однако мне придется запускать sudo iwconfig wlan0 power off
каждый раз, когда я подключаюсь к сети.
Для этого я проиллюстрировал решение на https://askubuntu.com/a/825976/349291
.