我们正在使用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
答案 0 :(得分:0)
也许这是预期的行为。但是,可以通过在应用格式之前四舍五入来避免这种情况。
kendo.toString(Math.round(-.01), "\\$0;-\\$0") //$0