Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

decimal value validation and round off by javascript

0.00/5 (No votes)
2 Jun 2010 1  
Hi All,I have created one javascript by which you can validate a decimal value of any textbox for which you want.By this javascript we can bind

This articles was originally at wiki.asp.net but has now been given a new home on CodeProject. Editing rights for this article has been set at Bronze or above, so please go in and edit and update this article to keep it fresh and relevant.

Hi All,

I have created one javascript by which you can validate a decimal value of any textbox for which you want.

By this javascript we can bind user to enter only digits in textbox. and when he will enter any decimal value javascript will do round off it by 2 digits.

So here is this javascript:

 <script language="JavaScript" type="text/javascript">

        function round_decimals() {
            var val = document.getElementById('<%=txtamount.ClientID %>').value;
            var result1 = parseFloat(val) * Math.pow(10, 2);
            var result2 = Math.round(result1);
            var result3 = result2 / Math.pow(10, 2);
            document.getElementById('<%=txtamount.ClientID %>').value = pad_with_zeros(result3, 2);
        }

        function pad_with_zeros(rounded_value, decimal_places) {

            // Convert the number to a string
            var value_string = rounded_value.toString()

            // Locate the decimal point
            var decimal_location = value_string.indexOf(".")

            // Is there a decimal point?
            if (decimal_location == -1) {

                // If no, then all decimal places will be padded with 0s
                decimal_part_length = 0

                // If decimal_places is greater than zero, tack on a decimal point
                value_string += decimal_places > 0 ? "." : ""
            }
            else {

                // If yes, then only the extra decimal places will be padded with 0s
                decimal_part_length = value_string.length - decimal_location - 1
            }

            // Calculate the number of decimal places that need to be padded with 0s
            var pad_total = decimal_places - decimal_part_length

            if (pad_total > 0) {

                // Pad the string with 0s
                for (var counter = 1; counter <= pad_total; counter++)
                    value_string += "0"
            }
            return value_string
        }

        //-->
    </script>

 Now here is the aspx page that how we have to place it on textbox.

<asp:TextBox ID="txtamount" onblur="javascript:round_decimals()" runat="server"></asp:TextBox>

 I had tested this javascript in IE7/IE8/FF/safari/Google Chrome.

 

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here