【问题标题】:Format NumeralJS percentages without multiplying by 100格式化数字 JS 百分比而不乘以 100
【发布时间】:2015-02-27 17:24:34
【问题描述】:

在 Handsontable 中,您可以在 numeric 单元格上使用 format 选项来相应地格式化值。由于它使用 NumeralJS,我查看了文档以了解如何格式化数字以仅添加 % 符号而不是乘以 100,但如果不设置我自己的,我找不到如何做到这一点。

示例单元格:

{
    "type": "numeric",
    "format": "0.00%"
}

值为 7 时,显示"700.00%"。我希望它显示“7.00%”。有什么方法可以在handsontable中做到这一点?

【问题讨论】:

    标签: formatting handsontable


    【解决方案1】:

    对于仍在寻找实现此目标的最简单方法的任何人,您可以设置一个数字选项,如下所示:

    numeral.options.scalePercentBy100 = false;
    

    感谢 Csaba Toth 创建 PR。 PR Here

    【讨论】:

    • 像魅力一样工作!
    【解决方案2】:

    我认为目前没有办法在不更改 numeral.js 文件的情况下执行此操作。

    如果需要,您可以通过删除 * 100 部分来编辑 function formatPercentage(在 numberal.js 中找到):

    function formatPercentage (n, format, roundingFunction) {
        var space = '',
            output,
            value = n._value/* * 100*/; // comment out or remove * 100 here
    
        ...
    }
    

    【讨论】:

    • 好的,很高兴知道。我最终使用自定义渲染器使用正则表达式手动格式化它,但这也可以。
    • 不幸的是,我不得不修改 numeric.js。
    • 推了一个PR,但是看未合并的PR数量我并不太乐观。
    【解决方案3】:

    也许比覆盖数字 JS 逻辑更好,您也可以将数字数字化到所需的小数精度,然后在末尾连接百分号。

    formatPercent(number) {
        return `${numeral(number).format('0.00')}%`;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 2010-11-19
      • 2020-05-10
      相关资源
      最近更新 更多