gpt4 book ai didi

javascript - 如何在handsontable中显示百分比而不是比率?

转载 作者:行者123 更新时间:2023-11-28 00:40:18 25 4
gpt4 key购买 nike

Handsontable 使用 numeric.js 来格式化数字等。

如果数据类型设置为数字并且数据格式设置为0.00%,handsontable(数字)可以很好地以百分比格式对其进行格式化。例如,如果值为 0.5,则会自动格式化为 50%。

但是当用户尝试编辑该值时,他们会看到 0.5 而不是 50%。这是有道理的,但 Excel 的行为方式并非如此,而且我的用户是 Excel 的重度用户(Excel 显示实际的百分比数字)。有没有办法让它在编辑时显示“50”而不是0.5?我查看了 numeric.js 代码,发现这个函数 formatPercentage 将数字乘以 100,用 % 符号填充等。可以更改此函数的工作方式以使其模仿 MS Excel。但是,有没有办法在不改变 numeric.js 的情况下做到这一点?

这是上述示例(查看第三列 - 价格列) http://jsfiddle.net/suk9g9cm/

{
data: "price_usd",
type: 'numeric',
format: '0,0.00%',
language: 'en' //this is the default locale, set up for USD
},

最佳答案

我自己也遇到了类似的问题,并且有一个未经测试的解决方案。让我告诉你目前已知的情况。 Handsontable 有一个编辑器和一个渲染器。编辑器会模仿您的数据,因此如果您输入 0.5,那么每当您编辑该单元格时,它都会显示该数据。渲染器是您离开单元格后看到的内容,在您的情况下,您格式化了该值,因此 0.5 将显示为 50%。该值仅用于显示,正如您所指出的,numericaljs 乘以 100 并添加 %

然而,您正在寻找的是一种基本上将数据数组保持为 0.5 的方法,但在编辑时将其更改为 50,在渲染时保留为 50%。

这是一个解决方案:

使用“编辑”上的事件查看单元格的值。如果低于 1,则乘以 100(这将改变实际值,因此我们必须稍后进行调整)。在 afterChange 上,如果该值大于 1,则除以 100,否则离开(用户可能已空白并再次输入 0.5,因此如果您没有进行此检查,该值将降至 0.005)。

请注意,在 Excel 提供的另一种情况下,用户可能一开始就输入了 50,因此此方法实际上会修改此值,并且始终将数据数组保留为 0.5。如果这不是您想要的,那么事情会变得更难,所以我们暂时可以接受。

这应该可以解决问题,尽管我还没有测试过它,并且可能有一些我很想听的边缘情况。

同时让我知道它是否有效

关于javascript - 如何在handsontable中显示百分比而不是比率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28028482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com