I'm getting crazy with decimal places in asp.net core.
Sql Server table:
money decimal (18,0)
I put in Startup.cs /Configure
var cultureInfo = new CultureInfo("vi-VN");
cultureInfo.NumberFormat.CurrencySymbol = "đ";
cultureInfo.NumberFormat.CurrencyDecimalDigits = 0;
cultureInfo.NumberFormat.CurrencyDecimalSeparator = ",";
cultureInfo.NumberFormat.CurrencyGroupSeparator = ".";
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
var supportedCultures = new[]
{
cultureInfo
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("vi-VN"),
// Formatting numbers, dates, etc.
SupportedCultures = supportedCultures,
// UI strings that we have localized.
SupportedUICultures = supportedCultures
});
However, when I get any decimal value, it's always in 2 decimal places.
On View:
<input asp-for="money"/>
=> show something like 123455,00. and this value will be submitted back to the controller for calculation, so it should be in numeric format, not in string format like ToString("N0")...