如何设置默认小数点和千位分隔符用于在asp.net mvc格式化数字而不管文化?asp.net mvc设置数字格式默认小数千分隔符
回答
一些信息,我会后终于为我工作的代码。在控制器上OnActionExecuting功能:
ViewBag.CurrentNumberFormat = new System.Globalization.CultureInfo("en-US", false).NumberFormat;
ViewBag.CurrentNumberFormat.NumberDecimalDigits = 2;
ViewBag.CurrentNumberFormat.NumberDecimalSeparator = "~";
ViewBag.CurrentNumberFormat.NumberGroupSeparator = " ";
,并考虑:
@((1234567.435).ToString("#,###.##", ViewBag.CurrentNumberFormat))
string.Format("{0:N2}", yourLovelyNumber);
好的,但我希望能够自己指定小数和千位分隔符,我该怎么做? –
您可以创建一个DisplayTemplate
,将处理怎么样这个号码显示在您的看法:
/Views/Shared/DisplayTemplates/float.cshmtl
:
@model float
@string.Format("{0:N2}", Model);
,然后你可以从你的观点称呼它,如果Amount
是float
:
@Html.DisplayFor(m => m.Amount)
这个模板是如何引用的? –
要控制千位分隔符,您必须将您的更改应用于NumberFormat
以获取当前文化。
如果您希望发生这种情况而不考虑当前的文化,您可以简单地克隆当前的文化,应用修改的NumberFormat
并将其设置为当前的文化。
在一个MVC应用程序的Application_BeginRequest期间,你通常会做这个
protected void Application_BeginRequest(object sender, EventArgs e)
{
newCulture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
newCulture.NumberFormat.NumberGroupSeparator = "~";
System.Threading.Thread.CurrentThread.CurrentCulture = newCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = newCulture;
}
现在你可以使用的ToString的“正常”的格式选项()根据您的需求,以进一步控制格式化:
var a = 3000.5;
var s = a.ToString('N:2') // 3~000.50
s = a.ToString('N:4') // 3~000.5000
更新System.Threading.Thread.CurrentThread.CurrentCulture不起作用,因为它会导致其他错误。我可以举一个例子:当我尝试在Number中转换默认格式的字符串(例如“14543.12”)时,它会引发错误。这是有道理的。感谢您的帮助,无论如何 –
您需要指定自定义数字格式才能实现您要查找的内容。 Here is the MSDN创建自定义字符串格式功能。
如果您确实需要自定义千位分隔符,请创建您自己的NumberFormatInfo变量,将您想要的值分配给千位分隔符(如果需要,还可输入小数点)。然后将自定义格式应用于您的号码。
var numberFormatter = new CultureInfo("en-US", false).NumberFormat;
numberFormat.NumberDecimalSeparator = ";";
numberFormat.NumberGroupSeparator = "-";
var myNumber = 1234567.89;
var myFormattedNumber = myNumber.ToString("#,###.##", numberFormatter);
//myFormattedNumber -> 1-234-567;89
variable.ToString( “N2”) - 这在ASP.Net MVC剃刀为我工作。
我有同样的问题,并可以推荐autoNumeric插件https://github.com/autoNumeric/autoNumeric
包括插件:
<script src="~/Scripts/autoNumeric/autoNumeric.min.js" type="text/javascript"></script>
HTML:
<input type="text" id="DEMO" data-a-sign="" data-a-dec="," data-a-sep="." class="form-control">
脚本:
<script>
jQuery(function($) {
$('#DEMO').autoNumeric('init');
});
</script>
您只能输入数字,如果输入100000,99,您将会看到100.000,99。
截至今天,在当前稳定版本'4'中不再支持jQuery的旧记法,这是行不通的,只需使用'new AutoNumeric('#DEMO' )'你很好走! – Alex
- 1. 千位分隔符的数字格式
- 2. 小数千分隔符和小数点
- 3. 格式千位分隔符
- 4. 如何格式化数字来定义数千个分隔符?
- 5. 如何设置千位分隔符的小数点后两位?
- 6. 数字格式与NSNumberFormatter已经有小数和千个分隔符
- 7. 带格式的数字。作为千个分隔符,没有小数
- 8. 使用VBA设置带有千位分隔符,2位小数和负号的负号标准数字格式?
- 9. 千位分隔符在数字格式化后不应该允许使用小数点分隔符
- 10. 如何用“。”格式化数字。作为千位分隔符,而“,”作为小数点分隔符?
- 11. Fortran小数点和千位分隔符
- 12. AngularJS:货币格式。更改分数大小,千分位分隔符和分数分隔符
- 13. 使用千位分隔符格式化数字Smarty PHP
- 14. d3格式的数字不显示千位分隔符
- 15. 使用撇号格式的数字作为千位分隔符
- 16. mySQL格式的数字输出,千位分隔符
- 17. 错误数字格式和千个分隔符
- 18. 格式化数字/字符串与小数点分隔符
- 19. Inno设置格式与千位分隔符
- 20. 更改绑定中的默认千位和小数点分隔符
- 21. 验证小数用小数点分隔符和千个分隔符
- 22. 如何将double值格式化为小数点后两位小数,分隔符数为几千的字符串?
- 23. 在iPython中设置千位分隔符,而不使用字符串格式
- 24. 如何设置千位分隔符(空格)和小数点分隔符(逗号),并从ssrs中的数据库字段取小数位数?
- 25. kendoNomeric格式不带千位分隔符
- 26. 如何使用精简格式将数字格式化为千位分隔符?
- 27. 如何设置自定义分组和数字分隔符的数字格式
- 28. 设置org.eclipse.swt.widgets.Spinner的小数点分隔符
- 29. 区域设置小数点分隔符
- 30. 修改小数点和千位分隔符不改变小数
这与我在下面发表的内容有什么不同吗?(很高兴您能够正常工作! – Tommy
这不一样,因为我无需编写5行代码,而只需要格式化一个数字。您的文章确实有帮助和鼓舞人心,谢谢 –