如何設置默認小數點和千位分隔符用於在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行代碼,而只需要格式化一個數字。您的文章確實有幫助和鼓舞人心,謝謝 –