格式化数字 JS 百分比而不乘以 100
Posted
技术标签:
【中文标题】格式化数字 JS 百分比而不乘以 100【英文标题】:Format NumeralJS percentages without multiplying by 100 【发布时间】:2015-02-27 17:24:34 【问题描述】:在 Handsontable 中,您可以在 numeric
单元格上使用 format
选项来相应地格式化值。由于它使用 NumeralJS,我查看了文档以了解如何格式化数字以仅添加 % 符号而不是乘以 100,但如果不设置我自己的,我找不到如何做到这一点。
示例单元格:
"type": "numeric",
"format": "0.00%"
值为 7 时,显示"700.00%"
。我希望它显示“7.00%”。有什么方法可以在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')%`;
【讨论】:
以上是关于格式化数字 JS 百分比而不乘以 100的主要内容,如果未能解决你的问题,请参考以下文章