formatting rules for numbers in knockoutjs

http://stackoverflow.com/questions/7704268/formatting-rules-for-numbers-in-knockoutjs

by rniemeyer

HTML

<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<script src="https://rawgithub.com/SteveSanderson/knockout.mapping/master/build/output/knockout.mapping-latest.debug.js"></script>
<div data-bind="numericText: myValue"></div>
<div data-bind="numericText: myValue, precision: 3"></div>
<div data-bind="numericText: myValue, precision: myPrecision"></div>
<input data-bind="value: myPrecision" />

JavaScript

ko.bindingHandlers.numericText = {
    update: function(element, valueAccessor, allBindingsAccessor) {
       var value = ko.utils.unwrapObservable(valueAccessor()),
           precision = ko.utils.unwrapObservable(allBindingsAccessor().precision) || ko.bindingHandlers.numericText.defaultPrecision,
           formattedValue = value.toFixed(precision);
        
        ko.bindingHandlers.text.update(element, function() { return formattedValue; });
    },
    defaultPrecision: 1  
};

var viewModel = {
    myValue: ko.observable(123.55454),
    myPrecision: ko.observable(4)
};

ko.applyBindings(viewModel);