首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数值文本的不同精度取决于数字值

问数值文本的不同精度取决于数字值
EN

Stack Overflow用户
提问于 2017-06-13 13:20:59
回答 2查看 33关注 0票数 1

我使用“敲除”来显示数值如下:

代码语言:javascript
复制
<td class="right"><span data-bind="numericTextWithoutNumericSeparator: Volume, precision: 4"></span></td>

在js文件中,我有以下内容:

代码语言:javascript
复制
ko.bindingHandlers.numericTextWithoutNumericSeparator = {
    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: 2
};

但是我需要用两个小数位来表示数字,如果最后两个小数位数是零,其他数字是4个小数位数。

下面是一个例子:

代码语言:javascript
复制
1.1234 -> 1.1234
1.1200 -> 1.12
1.1350 -> 1.1350
1.0000 -> 1.00

我应该如何处理我的js文件才能实现这一点?

编辑:--我编辑了js文件如下:

代码语言:javascript
复制
ko.bindingHandlers.numericTextWithoutNumericSeparator = {
    update: function (element, valueAccessor, allBindingsAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor()),
            precision = function () {
                if (value % Math.round(value, 2) == 0) {
                    return 2;
                } else {
                    return 4;
                }
            },
            formattedValue = value.toFixed(precision);

        ko.bindingHandlers.text.update(element, function () { return formattedValue; });
    }
};

但是把四舍五入的数字提高到0位数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-13 13:57:19

precision是一个函数,但是当您调用它时,忽略了括号

代码语言:javascript
复制
formattedValue = value.toFixed(precision());
票数 1
EN

Stack Overflow用户

发布于 2017-06-13 13:52:31

你可以试试这样的方法:

​

代码语言:javascript
复制
function shortNumber(number, precision) {
  var short = number.toFixed(precision)
  short = short + new Array(precision - short.split('.')[1].length + 1).join(0)
  return (short == number ? short : number)
}

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44522785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档