lib/format.js
function UDecimalUnimply(value, precision) {
    assert(value != null, "value is required");
    value = value === "object" && value.toString ? value.toString() : String(value);
    assert(/^\d+$/.test(value), 'invalid whole number ' + value);

    // Ensure minimum length
    var pad = precision - value.length;
    if (pad > 0) {
        value = '' + "0".repeat(pad) + value;
    }

    var dotIdx = value.length - precision;
    value = value.slice(0, dotIdx) + '.' + value.slice(dotIdx);
    return UDecimalString(value); // Normalize
}
function UDecimalUnimply(value, precision) {
    assert(value != null, "value is required");
    value = value === "object" && value.toString ? value.toString() : String(value);
    assert(/^\d+$/.test(value), 'invalid whole number ' + value);

    // Ensure minimum length
    var pad = precision - value.length;
    if (pad > 0) {
        value = '' + "0".repeat(pad) + value;
    }

    var dotIdx = value.length - precision;
    value = value.slice(0, dotIdx) + '.' + value.slice(dotIdx);
    return UDecimalString(value); // Normalize
}
Put the decimal place back in its position and return the normalized number
string (with any unnecessary zeros or an unnecessary decimal removed).

@arg {string|number|value.toString} value 10000
@arg {number} precision 4
@return {number} 1.0000