내가 머물 후행 제로가 필요립니다하지만 43.00이 API를 직렬화 복원 할 때 그냥 크롬 브라우저에서 43.NET API를 : 후행 제로는
요청 페이로드되었다 :
API를 컨트롤러에값 : 내가 저장 제안
내가 머물 후행 제로가 필요립니다하지만 43.00이 API를 직렬화 복원 할 때 그냥 크롬 브라우저에서 43.NET API를 : 후행 제로는
요청 페이로드되었다 :
API를 컨트롤러에값 : 내가 저장 제안
코드를 보지 않고 숫자를 문자열로. 그렇지 않으면 후행 0이 매번 제거됩니다.
나는 트레일 0이 머물길 바라고 있었다. –
@SimbaMeek : OP가 방금 어떻게 그들을 머물 수있게했는지 이야기했다. 숫자 값 대신 문자열로 저장하십시오. 보다 자세한 답변이 필요하면 코드 예제를 게시하여 살펴보십시오. – Flater
따라서 WebApi의 기본 serializer는 JSON.Net이므로 WebApiConfig.cs (App_Start/WebApiConfig.cs의 웹 프로젝트)에서 serializer 설정을 변경할 수 있습니다. 등록 (HttpConfiguration 설정) 메소드.
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
JsonSerializerSettings 클래스에서 FloatParseHandling이 누락되었습니다. –
간접적 인 해결책은 데이터베이스의 단가 열에 소수 자릿수 2 자리를 구성하는 것입니다. 그래서 43을 저장하면 데이터베이스에 43.00이됩니다. PostgreSQL의에서
:
ALTER TABLE <tablename> ALTER COLUMN "UnitPrice" type numeric(50,2);
그것은 후행 제로를 제거하지, 그것은 숫자에 문자열에서 변환 것 :
또는 단가 열이 이미 테이블에 존재하는 경우
. – phuzi@phuzi 어떻게 두 개의 후미 0을 유지할 수 있습니까? –
'UnitPrice'는 숫자 값이므로 숫자로 유지하고 표시하기 전에 제대로 포맷해야합니다. – Thomas