Kendo UI输入框显示异常:200.00显示为20000及默认金额设置问题
解决Kendo UI输入框金额显示多两位零的问题
问题根源
200.00显示为20000的核心原因是文化区域设置不匹配,Kendo UI的数值/货币控件会依据当前文化规则解析小数和千分位分隔符。若应用的文化设置将逗号设为小数分隔符、点设为千分位分隔符,200.00就会被错误解析为20000。另外,自定义格式字符串的写法错误也可能触发该问题。
修复方案
1. 正确配置CurrencyTextBox
CurrencyTextBox内置货币格式逻辑,建议依赖文化设置而非手动硬写格式,同时明确指定小数位数:
@(Html.Kendo().CurrencyTextBoxFor(model => model.Paid) .Culture("en-ZA") // 适配南非兰特(R)的文化,确保小数分隔符为点 .Decimals(2) // 强制保留两位小数 .Min(0))
2. 修正NumericTextBox的格式与文化
如果使用NumericTextBox,需调整格式字符串并指定正确的文化规则:
@(Html.Kendo().NumericTextBoxFor<decimal>(model => model.Paid) .Culture("en-ZA") .Format("R#.00") // 明确指定带两位小数的格式 .Decimals(2) .Min(0))
3. 验证后台模型值
确认后台model.Paid的默认值确实是200.00m(decimal类型),排除因赋值错误导致的显示异常。
内容的提问来源于stack exchange,提问作者Jeffrey Skinner
相关产品推荐
相关产品推荐

