asp.netコアの小数点以下の桁が狂っています。asp.netコアの小数点以下の桁数を設定する方法は?
SQL Serverのテーブル:
money decimal (18,0)
は私が任意の10進値を得るとき、それは、小数点以下2桁に常にだ、
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
});
しかしStartup.cs /設定に入れます。
ビュー:
<input asp-for="money"/>
=> 123455,00ようなものを示しています。この値は計算のためにコントローラに返されるので、ToString( "N0")のような文字列形式ではない数値形式でなければなりません...
問題は、<入力ASP-用=「お金」/>を表示するためにモデルを結合したときに、後に値が計算のためにコントローラに返すように、それは数でなければなりません。 –
データアノテーションを使用できます。編集を確認してください。 –
データアノテーションが機能しない場合、検証システムは「これは数字ではありません」などを生成します。多くの人がここで不平を言っています。https://stackoverflow.com/questions/39737607/aspnet-core-decimal-binding-not-working-on-non-英語の文化、またはここにhttps://github.com/aspnet/Mvc/issues/5331 –