Kendo条件格式导致负零

时间:2016-10-11 12:49:03

标签: javascript kendo-ui telerik number-formatting

我们正在使用kendo对条件格式的支持来构建自定义蒙版。例如:

kendo.toString(value, '\\$0;-\\$0') // e. g. -$100 or $100

问题在于kendo选择了应用BEFORE舍入的条件格式的哪一侧。因此,我们最终可以显示负零:

kendo.toString(-.01, '\\$0;-\\$0') // -$0

请注意,这与此问题类似:http://www.telerik.com/forums/issue-rounding-to-zero---getting-negative-zero,但问题是内置的n2格式,而我们的问题是条件格式。

请注意,在C#/ .NET中,条件格式的行为符合我们的要求:

Console.WriteLine((-.01).ToString("$0;-$0")); // $0

作为参考,我们构建这样的面具的原因是因为我们有用户定义的“前”和“后”符号,它们应该在负/正号之间(或者如果我们使用parens来表示否定)。数字本身。因此我们想要 - $ 100或($ 100)而不是$ -100或$(100),其中" $"是用户指定的字符串。

是否有可能让Kendo在这方面表现得像.NET?这是预期的行为还是剑道中的错误?

编辑:看起来这也会导致"正零和#34;使用3向条件格式:

var format = "+\\$0;-\\$0;\\$0";
kendo.toString(1, format) // "+$1"
kendo.toString(0, format) // "$0"
kendo.toString(-1, format) // "-$1"
kendo.toString(.001, format) // "+$0" (positive zero)

这在.NET中也可以正常工作:

Console.WriteLine(0.001.ToString("+\\$0;-\\$0;\\$0")); // $0

1 个答案:

答案 0 :(得分:0)

也许这是预期的行为。但是,可以通过在应用格式之前四舍五入来避免这种情况。

kendo.toString(Math.round(-.01), "\\$0;-\\$0") //$0