我希望过滤我的kendo.toString来敲掉不需要的零,留下最小两位小数和最多4位小数。例如......
我的实际标记是
<li><label>Flagfall:</label>$#= (Flagfall == null) ? '0.00' : kendo.toString(Flagfall, "n4") #</li>
答案 0 :(得分:1)
我已根据您提供的示例测试了我的提案。我已根据数字对其进行了测试。如果你有一个包含数字的字符串,那么就像使用它一样:
<ReportData>
<Columns>
<Column>Name</Column>
<Column>UserName</Column>
<Column>Remarks</Column>
<Column>IP Address</Column>
<Column>Date Created</Column>
<Column>APP ID</Column>
<Column>App Version</Column>
<Column>Last Loggedin</Column>
</Columns>
<Rows>
<Row>
<Cell>123</Cell>
<Cell>0.0.0.0</Cell>
<Cell>2016-02-24T18:32:11.803</Cell>
<Cell>AOS</Cell>
<Cell>0.0.3.0</Cell>
<Cell>2016-05-30T15:25:05.880</Cell>
</Row>
<Row>
<Cell>123</Cell>
<Cell>0.0.0.0</Cell>
<Cell>2016-02-25T10:22:34.623</Cell>
<Cell>BOS</Cell>
<Cell>0.0.3.0</Cell>
<Cell>2016-05-30T15:25:05.880</Cell>
</Row>
</Rows>
</ReportData>
无论如何,这是解决方案:
var result = convert(+string);
该函数返回一个字符串。如果你想要它是数字,只需在它之前放+,如:
var x = 25.000;
function convert(value) {
let [a, b] = ('' + value).split(/\./);
b = b? b.replace(/([0-9]{2}[1-9]*9+)/, '$1') : '00';
return a + '.' + b;
}
console.log(convert(25.7670));
console.log(convert(250));
console.log(convert(25.7080));
console.log(convert(25.000)); // same as 25, honestly
或者如果您更喜欢/需要旧的Javascript版本:
var result = +convert(your_number_here);
答案 1 :(得分:0)
您可以编写自定义的javascript函数,例如
var isInt = function(n) { return parseInt(n) === n };
function format(num){
if(isInt(num)){
return Number(num).toFixed(2);
}else{
return Number(num).toFixed(3);
}
}
console.log(format(25.7670));
实现这一目标。
答案 2 :(得分:0)
您的格式字符串可以更改为kendo.toString(Flagfall, "#.00##")
。 0
占位符表示要填充的所需插槽,而#
占位符表示可选位置。剑道似乎很好地处理了这个问题:
var numbers = [42, 42.0, 0, 0.01, 0.0003, 5.2, 4.12351, 4.12355],
template = "kendo.toString(num, '#.00##')"
tpl = kendo.template("Number: #= num #\t- #= " + template.replace(/#/g, "\\\\#") + "# \t Formatted\n"),
$text = $("#text");
numbers.forEach(function(num) {
$text.val($text.val() + tpl({
num: num
}));
});
&#13;
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js"></script>
<textarea id="text" style="height: 10em; width: 30em;"></textarea>
&#13;
如果您使用的是Kendo Numeric Textbox,则可以将format string与decimals属性结合使用。
$("#numerictextbox").kendoNumericTextBox({
format: "#.00##",
decimals: 4
});
&#13;
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.607/styles/kendo.common.min.css" />
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.607/styles/kendo.silver.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js"></script>
<input id="numerictextbox" />
&#13;