2017-02-21 9 views
1
진수

처리하는 방법 나는 3 속성에 소수점 이하 자릿수를 numericUpDown을 가지고 설정은 그래서 여기C#을 -

0.000 코드입니다되었다

Decimal inputGrossWeight = numGrossWeight.Value; 

if (inputGrossWeight = 0.000) 
{ 
    MessageBox.Show("Gross Weight must be filled!"); 
} 
else 
{ 
    Data newData = new Data(); 
    newData.grossWeight = inputGrossWeight; 
} 

참고 :

  • numGrossWeight는 numericUpDown의 이름입니다.

  • grossWeight는 제 데이터베이스의 열 이름입니다.

와 나는 2.365에서 사용자 유형이 너무 데이터베이스 2.365에 저장됩니다 그래서 데이터 형식 플로트

와 함께 데이터베이스에 저장합니다.

나는 여러 가지 방법을 사용하여 시도하고 그것은 나에게 오류를 제공합니다 :

Cannot implicitly convert type 'decimal' to 'double'. An explicit conversion exists (are you missing a cast?)

Literal of type double cannot be implicitly converted to type 'decimal'; use an 'M' suffix to create a literal of this type

내 코드에 어떤 문제가 있습니까?

+5

첫 번째 문제 :'=='를 원할 때'='를 사용하고 있습니다. 두 번째 문제 :'double '리터럴 인'0.000'을 사용하고 있습니다. '0.000m'을 원한다. 그래서 그것은 두 번째 컴파일러 에러가 알려주는 것과 똑같이'decimal' 리터럴이다. (어느 선이 첫 번째 오류를 일으키는 지 알 수 없음 ...) –

+4

오류 메시지가 무엇이 잘못되었는지 정확히 알려주고 있습니다. –

+0

오류가 무엇인지 명확하게 설명합니다. 그렇습니까? "명시 적 변환이 존재합니까?"캐스트가 누락 되었습니까? – HimBromBeere

답변

4

if 문에 할당하려고합니다.

노력이 오히려 존 소총 당신이 사과에 decimal 문자 때문에 비교 사과를 사용하고 있는지 확인하고있는 m을 추가하여, 그의 주석에서 언급 한 바와 같이

if (inputGrossWeight == 0m) 

.

+0

"m"을 덧붙이면 작동하지만 여전히 이해가 안됩니다. "m"은 무엇을 사용 했습니까? –

+0

'm'을 추가하면 Jon Skeet이 언급 한 것처럼 10 진수 리터럴이됩니다. 당신이 그것을 가지고 있지 않으면, 그것은 이중 리터럴입니다. –

+1

설명해 주셔서 감사합니다. –