65.9K
CodeProject is changing. Read more.
Home

decimal value validation and round off by javascript

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (1 vote)

Oct 11, 2013

CPOL

1 min read

viewsIcon

10842

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

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.