我在寻找几天如何格式化我的双重和双重? 输入作为 十进制=逗号和千分=点服务器端和客户端的MVC格式编号欧式风格
例如:
123456.01 ==> 123.456,01
14,02 ==> 14,02
987654321,002 ==> 987.654.321,002
我做了什么至今:
- 我检查服务器/本地区域设置
在我的web.config中添加全球化
全球化的UICulture = “FR-BE” 文化=“FR-BE
在我的模型我用下面的属性(但我使用TextBoxFor)
[DisplayFormat(DataFormatString = "{0:N3}", ApplyFormatInEditMode = true)]
@ Html.TextBoxFor(型号=> model.size,新的{的tabindex = 11,ID = “SizTotText”,@class = “形式控制输入-SM计算值”})
但 如何我可以:
1-在用户输入时,数字应该格式化? 我发现这个解决方案:how to format input box text as I am typing it 但我不能用点切换逗号Fiddle
下面这篇文章(改为十进制加倍)Post
有在计算器很多的解决方案,但没有一个似乎2-创建自定义帮手为我工作。
我希望我的问题是明确的,对不起我的英文不好
编辑:
我决定忽略客户端的格式,没有更多点的顿号,但我仍然有问题与区域设置。
我的应用程序仍然把小数点作为分隔符,我该如何解决这个问题? 更有趣,它接受一些字段和其他字段,但它们都具有相同的属性,设置...等见截图
有错误的字段是计算字段
var url = '@Url.Action("CalculateDropPrec", "Drop")';
$('.calc').change(function() {
// get the values of the textboxes
var numUsed = $('#numUseText').val();
var totNumUsed = $('#totNumUseText').val();
$.post(url, { nUsed: numUsed, tUsed: totNumUsed }, function (response) {
$('#precText').val(response);
});
return false;
});
@Html.TextBoxFor(model => model.PerceDropTot, new {data_val = "false", id = "precText", name = "precText", @class = "form-control input-sm drop-read", placeholder = "0.0", @readonly = "readonly" })
public JsonResult CalculateDropPrec(double nUsed, double tUsed)
{
var result = CommonComputation.CalcPrecDrop(nUsed, tUsed);
return Json(result);
}
在文本框中添加千位分隔符意味着如果不创建自定义模型绑定器即可将您的字符串转换回“decimal”,则无法绑定到您的模型(小数类型不能绑定到包含数千个分隔符的值)。你可以考虑[这个项目](https://github.com/stephenmuecke/mvc-numericinput)作为替代 –
而不是设置$('#precText').val(response);'你可以尝试先格式化结果是一些你期望的格式和精度,做这样的事情:'$('#precText').val(parseFloat(response).toFixed(3));' – thmshd