は、私が滞在して末尾のゼロを必要と切り捨てられますが、43.00は、APIでデシリアライズされたとき、それはちょうどChromeブラウザでの43の.NET API:末尾のゼロは
要求ペイロードとなりました:
APIコントローラで値:私は保存することをお勧め
は、私が滞在して末尾のゼロを必要と切り捨てられますが、43.00は、APIでデシリアライズされたとき、それはちょうどChromeブラウザでの43の.NET API:末尾のゼロは
要求ペイロードとなりました:
APIコントローラで値:私は保存することをお勧め
任意のコードを見ず数値を文字列として返します。それ以外の場合は末尾のゼロが毎回削除されるため
私は末尾のゼロが残ることを望んでいました。 –
@SimbaMeek:OPはちょうどあなたがそれらを滞在させる方法を教えました。それらを数値の代わりに文字列として保存します。より詳細な回答が必要な場合は、コードサンプルを投稿してください。 – Flater
したがって、WebApiのデフォルトシリアライザはJSON.Netなので、WebApiConfig.cs(WebプロジェクトのApp_Start/WebApiConfig.cs)でシリアライザ設定を変更できます。 Register(HttpConfiguration config)メソッド。
var formatter = config.Formatters.JsonFormatter;
formatter.SerializerSettings.FloatParseHandling = Newtonsoft.Json.FloatParseHandling.Decimal;
末尾の小数点記号が確実に保持されるようにするためには、これだけが必要です。
上記のコードはどこに配置しますか?現在私は: パブリック静的クラスWebApiConfig {公共静的ボイドレジスタ(HttpConfiguration設定) {config.Routes.MapHttpRoute( 名: "DefaultApi"、 routeTemplate:「API/{コントローラ}/{ID} "、 デフォルト:new {id = RouteParameter.Optional}、 ); } } –
ファイルの場所に関する回答が更新されました。 – robjam
FloatingParseHandlingがJsonSerializerSettingsクラスにありません –
間接的な解決策は、データベースのUnitPrice列に小数点以下2桁を設定することです。したがって、43を保存すると、43.00になります。 PostgreSQLで
:
ALTER TABLE <tablename> ADD COLUMN "UnitPrice" numeric(50,2);
又は単価列が既にテーブル内に存在した場合:
ALTER TABLE <tablename> ALTER COLUMN "UnitPrice" type numeric(50,2);
それは末尾のゼロを削除いない、それは数に文字列から変換です。 – phuzi
@phuziどのように2つの末尾のゼロを保持することができます –
'UnitPrice'は数値であると仮定しますので、数値として保存してから適切に表示してから表示してください。 – Thomas