Здесь есть несколько возможных методов . Если результирующие наборы все одинаковы, вы можете использовать метод INSERT ... EXEC. В противном случае может работать OPENQUERY.
ПРИМЕЧАНИЕ : потенциально устарело. ECMAScript 2017 включает String.prototype.padStart
Вы запрашиваете нулевое заполнение? Не совсем округление. Вам придется преобразовать его в строку, поскольку числа не имеют смысла с начальными нулями. Что-то вроде этого ...
function pad(num, size) {
var s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
Или, если вы знаете, что никогда не будете использовать больше X нулей, это может быть лучше. Это предполагает, что вам никогда не нужно больше 10 цифр.
function pad(num, size) {
var s = "000000000" + num;
return s.substr(s.length-size);
}
Если вас интересуют отрицательные числа, вам придется убрать знак «-» и прочитать его.
ОБНОВЛЕНИЕ: Маленькая однострочная функция с использованием метода ES2017 String.prototype.padStart
:
функция zeroPad (число, разряды) {return String ( число) .padStart (места, '0')} console.log (zeroPad (5, 2)); // «05» console.log (zeroPad (5, 4)); // «0005» console.log (zeroPad (5, 6)); // «000005» console.log (zeroPad (1234, 2)); // "1234"
Другой подход ES5:
function zeroPad(num, places) {
var zero = places - num.toString().length + 1;
return Array(+(zero > 0 && zero)).join("0") + num;
}
zeroPad(5, 2); // "05"
zeroPad(5, 4); // "0005"
zeroPad(5, 6); // "000005"
zeroPad(1234, 2); // "1234" :)
Просто для удовольствия (у меня было время убить), более сложная реализация, которая кэширует нулевую строку:
pad.zeros = new Array(5).join('0');
function pad(num, len) {
var str = String(num),
diff = len - str.length;
if(diff <= 0) return str;
if(diff > pad.zeros.length)
pad.zeros = new Array(diff + 1).join('0');
return pad.zeros.substr(0, diff) + str;
}
Если счетчик заполнения велик и функция вызывается достаточно часто, он фактически превосходит другие методы ...