zoukankan      html  css  js  c++  java
  • js输入小写金额转大写

    1.HTML代码(使用了angular,但不影响操作)

                                <div class="form-group"  ng-show="Model.IsCash==1">
                                    <label class="control-label col-xs-1">合同金额:</label>
                                    <div class="col-xs-4">
                                        <input class="form-control text-box single-line ng-pristine ng-scope ng-not-empty ng-valid-maxlength ng-valid-min ng-dirty ng-valid ng-valid-max ng-touched" type="number" ng-blur="NumChange($event)" required ng-model="Model.TotalAmount" min="0" max="100000000000"  />
                                    </div>
                                    <label class="control-label col-xs-1">大写:</label>
                                    <div class="col-xs-4">
                                        <input class="form-control text-box single-line" type="text" required ng-model="Model.TotalAmountCapital" maxlength="50" />
                                    </div>
                                </div>

    2.JavaScript代码(同样使用了angular……)

                    //监控金额
                    $scope.NumChange = function ($event) {
                        if ($($event.target).val() == '' || $($event.target).val() > 999999999999.99) {
                            $($event.target).val("0");
                            $scope.Model.TotalAmount = 0;
                        }
                        $scope.Model.TotalAmount = Math.floor($($event.target).val() * 100) * 1.0 / 100;
                        $scope.UpNum();
                    }
                    //金额大写
                    $scope.UpNum = function () {
                        var m = $scope.Model.TotalAmount;
                        if (!(m === undefined || m === '')) {
                            m = parseFloat(toFixed2(m)).toFixed(2);//强制保留两位小数,不够补零
                            m = parseInt(m * 100);//预防m * 100后面会出现未知小数部分,如26.80*100=2680.0……003
                            m += "";
                            var length = m.length;
                            var unit = new Array("仟", "佰", "拾", "", "仟", "佰", "拾", "", "仟", "佰", "拾", "", "角", "分");
                            var result = "";
                            for (var i = 0; i < length; i++) {
                                if (i == 2) {
                                    result = "元" + result;
                                } else if (i == 6) {
                                    result = "万" + result;
                                } else if (i == 10) {
                                    result = "亿" + result;
                                }
                                if (m.charAt(length - i - 1) == 0) {
                                    if (i != 0 && i != 1) {
                                        if (result.charAt(0) != '零' && result.charAt(0) != '元' && result.charAt(0) != '万') {
                                            result = "零" + result;
                                        }
                                    }
                                    continue;
                                }
                                result = toCapital(m.charAt(length - i - 1)) + unit[unit.length - i - 1] + result;
                            }
                            result += result.charAt(result.length - 1) == '元' ? "整" : "";
                            $scope.Model.TotalAmountCapital = result;
                        } else {
                            $scope.Model.TotalAmountCapital = '';
                        }
                    }
                    var toFixed2 = function (value) {
                        var value = Math.round(parseFloat(value) * 100) / 100;
                        var xsd = value.toString().split(".");
                        if (xsd.length == 1) {
                            value = value.toString() + ".00";
                            return value;
                        }
                        if (xsd.length > 1) {
                            if (xsd[1].length < 2) {
                                value = value.toString() + "0";
                            }
                            return value;
                        }
                    }
                    var toCapital = function (n) {
                        switch (n) {
                            case "0":
                                return "零";
                            case "1":
                                return "壹";
                            case "2":
                                return "贰";
                            case "3":
                                return "叁";
                            case "4":
                                return "肆";
                            case "5":
                                return "伍";
                            case "6":
                                return "陆";
                            case "7":
                                return "柒";
                            case "8":
                                return "捌";
                            case "9":
                                return "玖";
                        }
                    }

    3.页面效果

     4.总结:

    目前是针对保留两位小数装换金额的,如需保留更多位小数,可仿造进行适当的修改

  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/JioNote/p/11685812.html
Copyright © 2011-2022 走看看