【问题标题】:How to display one digit after having decimal point along with their units for numbers using angualrjs?如何使用angularjs在小数点及其单位后显示一位数字?
【发布时间】:2020-05-01 14:35:22
【问题描述】:

我有以下代码:

控制器:

<div ng-controller="MainCtrl">
    <ul>
        <li ng-repeat="value in values ">{{value | number:1}}</li>
    </ul>
</div>

Javascript:

var app = angular.module('myApp', []);

function MainCtrl( $scope ) {
    $scope.values = [ '1', '8.634', '5.25', '(18.26%)', '(56.23pp)', '(10.28)' ];
}

如果我运行上面的代码,我会得到如下输出:

1.0
8.6
5.3

但我想要如下输出:

1.0
8.6
5.2
18.2%
56.2pp
10.2

即我想将小数点后的值及其单位以及%, pp 等获得最多一位数字(精度)。请让我知道使用angularjs 执行此操作。谢谢。

创建Fiddle

【问题讨论】:

  • 您的$scope.values 是否需要采用这种特定格式? (带括号)
  • @Stratubas,是的,我会得到这种格式的数字。
  • 那么,为了正确起见,有些数字会在括号内,有些不会有,有些数字旁边会有非数字字符串?
  • @Stratubas,是的,完全正确。我会根据我的要求得到这样的数字(比如有些是数字,有些在括号中,有些是非数字等)。所以,我需要将它们显示为我想要的输出,我不确定我该如何实现?请帮忙。

标签: javascript jquery html angularjs precision


【解决方案1】:

我很确定使用正则表达式可以做得更好,但这似乎没问题。

var app = angular.module('myApp', []);
app.controller("MainCtrl", MainCtrl);

function getNumberAndPostfix(inputString) {
    let number = '';
    let postfix = '';
    const characters = inputString.split('');
    for (const character of characters) {
        if ('()'.includes(character)) {
            continue;
        }
        if ('0123456789.'.includes(character)) {
            number += character;
            continue;
        }
        postfix += character;
    }
    return { number, postfix };
}

function MainCtrl($scope) {
    const inputValues = ['1', '8.634', '5.25', '(18.26%)', '(56.23pp)', '(10.28)'];
    $scope.values = inputValues.map(string => getNumberAndPostfix(string));
}
<script src="//unpkg.com/angular/angular.js"></script>
<div ng-app="myApp" ng-controller="MainCtrl">
    <ul>
        <li ng-repeat="value in values">{{value.number | number:1}}{{value.postfix}}</li>
    </ul>
</div>

【讨论】:

  • 是的,非常感谢您的帮助,很好! :-)
  • @georgeawg 哦,我错过了那个控制器,这就是为什么我无法让 sn-p 工作:) 感谢编辑
猜你喜欢
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
相关资源
最近更新 更多