2011-01-18 5 views
0

먼저 다른 속성 및 기능의 이름을 설명합니다. 이후에 어떤 데이터 유형을 사용해야하는지 알려주시겠습니까 ??C#에서 요구 사항을 준수하기 위해 사용해야하는 데이터 유형

1) 총중량 (사용자 입력) : 5 분의 1로 표시됩니다 (무게 카테고리). 예 : 147.3800.

2) 이하 인열 (사용자가 입력 한 것 또한 중량 카테고리 (quintals 될) 을 예 :.. 0.3800를

3) 순중량 (자동 계산 된) quintals을 (중량 카테고리) . 예 : GrossWeight - 덜 찢어짐.

4) 비율/퀸탈 (사용자가 입력 함) : 퀸틀 당 금액. 예를 들어 : 4560.55

5) 총 금액 (자동 계산 된) : 예를 들어 NetWeight 환율/퀸틀가

지금 C#에서 다섯 위 필드 나에게 바람직 데이터 유형을 말한다.

+3

을 선호합니다. 아마도 숙제일까요? 어쨌든, "제발"좋을 텐데. –

+0

LOL ..... 음, 숙제가 아니에요. 사실 저는 두 배와 십진수에 대해 의심이있었습니다. 나는 어딘가 돈 유형 decimal 최적이며 현재 내 애플 리케이션에서 두 번 사용하고 있습니다 읽어보십시오. 죄송합니다. 불쾌감을 느낀 경우 –

답변

1

가능한 부동 소수점 표현의 오류를 방지하기 위해 돈 (# 4, 5 #)에 대한 decimal를 사용합니다. 무게와 같은 물리적 측정을 위해

또는 sin 또는 log과 같은 비합리적인 함수의 경우 double을 선호합니다.

+0

흠 .... 나는 ..... .....하지만 돈 관련 이외의 다른 속성을 포함하는 경우에 할 일은 십진수에 바인딩 된 texbox 채울 수 없습니다. 예제에서와 같이 TotalAmount는 Rate/Quintal과 NetWeight의 곱셈에 대한 계산입니다. 내가 너무 순중량에 대한 십진수를 사용해야합니까 ?? –

+1

원한다면 유형을 혼합하는 것을 피하기 위해 모든 것에 대해'decimal'을 사용할 수 있습니다. 그러나 다른 유형은 다른 목적을 가지고 있습니다. 정수는 ** 개별 항목 ** 계산에 사용됩니다. 'float'과'double'은 ** ** ** ** 데이터의 ** approximations **입니다. 돈은 ** 이산 ** 수량이라는 점에서 독특하지만 1 대신 0.01 단위로 계산됩니다.이 목적을 위해 '이중'의 '0.01'은 실제로 0.010000000000000000816681711721685132943093776702880859375를 의미하는 것이 문제입니다. 따라서 십진법은 돈의 양을 정확히 표현할 수 있도록하기 위해 도입되었습니다. – dan04

+0

십진법 산술의 단점은 하드웨어 대신 소프트웨어로 구현된다는 것입니다. 이진 부동 소수점보다 느립니다.이런 이유 때문에 0.1과 0.01의 정확한 표현이 필요하다면'decimal '을 사용하는 것이 좋습니다. – dan04

2

두 경우 모두 부동 소수점 값을 사용하려는 경우가 많습니다.

.NET에는 임의 정밀도 부동 소수점 연산을 처리하는 객체가 없으므로 대부분 선택 영역은 정밀도와 범위와 연결됩니다. 십진수는 10e-28에서부터 7.9x10e28까지의 범위가 더 작지만 정밀도 (28-29 자릿수)는 더 우수합니다 .Double은 다른 방식으로 작동합니다 (~ 10e-324 ~ ~ 10e308 및 15-16 자리 범위).

이 시나리오를 위해 나는 모든 경우에 소수점을 사용하는 것이 좋습니다 것입니다.

+0

십진수 문제는 자연수 float 데이터를 채우는 데 사용할 수 없다는 것입니다. 마찬가지로 2.56 –

관련 문제