在 Dojo 中格式化数字

Formatting numbers in Dojo

对于 NumberTextBox 我需要以百分比格式显示它的值,例如如果值为 0.5 我需要显示 50%.

目前我正在使用 pattern: "#%" 但它显示了错误的值。

你能告诉我如何解决吗?

可选:

如果可能的话,是否也可以显示没有百分比的值 50

我也试过pattern:"#,##0.0%"但没有成功。

https://jsfiddle.net/gibbok/ejnar255/

<label for="programmatic">Opacity:</label>
<input id="programmatic" type="text" />


require(["dijit/form/NumberTextBox", "dojo/domReady!"], function(NumberTextBox) {
    new NumberTextBox({
        name: "programmatic",
        constraints: {
            min: 0,
            max: 1,
            pattern: "#%"
        },
        value: 0.5
    }, "programmatic").startup();
});

相关文档:

https://dojotoolkit.org/reference-guide/1.7/quickstart/numbersDates.html

http://www.unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns

https://dojotoolkit.org/reference-guide/1.10/dijit/form/NumberTextBox.html

我能够使用以下模式解决此问题:

pattern:"#.##%"

https://jsfiddle.net/gibbok/ejnar255/

require(["dijit/form/NumberTextBox", "dojo/domReady!"], function(NumberTextBox) {
    new NumberTextBox({
        name: "programmatic",
        constraints: {
            min: 0,
            max: 1,
            pattern:"#.##%"
        },
        value: 0.25
    }, "programmatic").startup();
});


<label for="programmatic">Opacity:</label>
<input id="programmatic" type="text" />