Javascript 当值为字符串时,kendo.tostring不格式化数字

Javascript 当值为字符串时,kendo.tostring不格式化数字,javascript,jquery,kendo-ui,kendo-asp.net-mvc,Javascript,Jquery,Kendo Ui,Kendo Asp.net Mvc,我正在使用kendo.toString()方法将字符串格式化为 比如说 kendo.culture("en-US"); kendo.toString(5000, "n") 返回5000 然而,若我传递字符串参数,那个么它就不起作用 kendo.culture("en-US"); kendo.toString("5000", "n") 返回5000 我注意到,执行以下操作似乎有效,因此我猜特定的方法不支持字符串输入 kendo.culture("en-US"); $("

我正在使用
kendo.toString()
方法将字符串格式化为 比如说

   kendo.culture("en-US");
   kendo.toString(5000, "n")
返回
5000

然而,若我传递字符串参数,那个么它就不起作用

   kendo.culture("en-US");
   kendo.toString("5000", "n")
返回
5000


我注意到,执行以下操作似乎有效,因此我猜特定的方法不支持字符串输入

kendo.culture("en-US");
$("#testnumber").text(kendo.toString(5000,"n"))

$("#myinput").change(function(){
   var val = $(this).val();

   val = kendo.toString(parseFloat(val), "n")
   $(this).val(val);

})

要使用
kendo.toString()
格式化数字,您应该传递数字而不是字符串

您可以简单地解析它:

var val = parseFloat($(this).val());
val = kendo.toString(val, "n")
见更新


请参见
kendo.toString()
logic

来自kendo.all.js:

var toString = function (value, fmt, culture) {
  if (fmt) {
    if (objectToString.call(value) === '[object Date]') {
      return formatDate(value, fmt, culture);
        } else if (typeof value === NUMBER) {
          return formatNumber(value, fmt, culture);
        }
    }
    return value !== undefined ? value : '';
  };
}

如果
value
是一个字符串,
toString()
将回显它

谢谢。但是,括号中未显示负数。对于
en-US
文化,负数应显示在括号中,实际上这正是预期的行为。。看一看。它有
en-US
文化定义的代码,并明确说明负数的格式为
-n
。您可以在
numberFormat:{
writed:
pattern:[“-n”],
下看到它。无论如何,您可以通过更改文件来覆盖此行为,但这已经超出了此问题的范围。希望它有帮助!欢迎对负数格式进行进一步评论:负数的en-US格式是“-n”但是,负数货币的格式是“($n)”。如果您使用字符串(val,“c”),则会得到括号(和a$)。如果您希望非货币数字使用“(n)”格式,则必须覆盖区域性定义的默认格式。