Я думаю, что эта функция может быть простым решением:
function trunc(decimal,n=2){
let x = decimal + ''; // string
return x.lastIndexOf('.')>=0?parseFloat(x.substr(0,x.lastIndexOf('.')+(n+1))):decimal; // You can use indexOf() instead of lastIndexOf()
}
console.log(trunc(-241.31234,2));
console.log(trunc(241.312,5));
console.log(trunc(-241.233));
console.log(trunc(241));
Предупреждение ResourceWarning: subprocess N is still running
исходит из метода __del__
класса subprocess.Popen
.
Если вы посмотрите на источник для этого метода , вы увидите следующий комментарий:
# Not reading subprocess exit status creates a zombie process which
# is only destroyed at the parent python process exit
_warn("subprocess %s is still running" % self.pid,
ResourceWarning, source=self)
Решение состоит в том, чтобы вы вызвали wait()
для дочернего процесса.
Дополнительную информацию см. В разделе ЗАМЕЧАНИЯ на странице руководства для wait(2)
.
В Python самый простой способ справиться с этой ситуацией - отслеживать все созданные вами Popen
объекты и гарантировать, что что-то вызывает wait()
для них, прямо или косвенно. [+1121]
Кроме того, вы можете установить обработчик SIGCHLD
, который игнорирует события SIGCHLD
; тогда ваши дочерние процессы немедленно исчезнут, но теперь вы не сможете вызвать wait()
для них. См. Также Как я могу предотвратить дочерние процессы зомби? и Как я могу обрабатывать SIGCHLD?