2011-10-31 4 views
0

이 작업은 간단하지만이 작업을 수행하는 데 어려움이 있습니다. convert.tostring, decimal.tostring, ctype (object, 유형) 및 cstr (객체)가 있지만 성공하지 못합니다. decial 객체를 문자열 객체로 변경하려고 시도하고 비어있는 문자열 값을 할당하지만 항상 형식 불일치 오류가 발생합니다.vb.net에서 십진수를 빈 문자열로 변환

Dim testdecimal as decimal = 0.0 
testdecimal = Cstr(testdecimal) 
testdecimal = string.empty 

답변

1

변수는 Decimal입니다.
문자열을 저장할 수 없습니다.

문자열을 보유하려면 별도의 변수 As String을 선언해야합니다.

0

십진수를 빈 문자열로 변환 할 수 없습니다. 위의 작업을 수행해야 할 이유를 잘 모르겠지만, 내가 사용하는 것 인 object 대신 : 당신은 당신이 이렇게 할 수있는 숫자의 문자열 representiation를 만들 필요가 같은

Dim test As Object = 10.12345 
test = "Hi" 
test = String.Empty; 

같습니다 : 당신은 String.Empty로 10 진수 변수의 값을 설정할 수 있지만 CSTR은 t을 변환하는 것이

'create a decimal variable 
Dim testDec As Decimal = 10.12345 

'convert decimal to string and then set to empty string 
Dim testStr As String = testDec.ToString("N") 
testStr = String.Empty 
+0

의 즉, 그것은 잘못된 생각이다. – SLaks

+0

VB로 변경되었습니다. 그것이 좋은 생각이라고 말하지 않았습니까? 단지해야 할 일이 무엇인지를 보여주는 것일뿐입니다. 나는 더 나은 코드로 대안을 포함시켰다. –

+0

10 진수를 문자열로 변환 한 다음 겹쳐 쓰는 것이 왜 불편합니까? 왜 그냥 어둡지 testStr String = String.Empty –

0

, 당신은 여기

Dim TestDecimal As Decimal = 0.0 
Dim strStringValue As String = IIf(TestDecimal = 0.0, "", TestDecimal.ToString()) 
MsgBox(strStringValue) 
0

귀하의 문제가 ... 이런 식으로 뭔가를 할 수 그는 문자열 자체가 아니라 문자열로 값을 바꿉니다. 그래서 당신이하는 일은 십진수 변수를 취하여 그 값을 문자열로 변환하고 문자열을 십진수로 되 돌리는 것입니다.

Dim testdecimal as decimal = 0.0 'testDecimal is a decimal type and you are assigning a decimal value 
testdecimal = Cstr(testdecimal) 'testDecimal is still a decimal but you are trying to put a string in it Here is your first type mismatch 
testdecimal = string.empty ' If this actually had worked it would have made the above line pointless because you just tried to overwrite the value (even though this line did not execute here is your second type mismatch) 

은 당신이 할 필요가있을 것이다 것은 :

Dim NewString as String 
Dim testdecimal as decimal = 0.0 
NewString = Cstr(testdecimal) 

는 위의 소수 값을 받아 문자열 변수에 다음 문자열로 저장을 변환합니다.

이제 문제의 두 번째 부분에 대해 10 진수를 빈 문자열로 변환하십시오. 문자열로 변환 된 0.0은 여전히 ​​"0.0"문자열이기 때문에 불가능합니다. 빈 문자열은 단지 빈 문자열입니다.

만약 당신이 10 진수를 문자열로 바꾸고 싶다면 값이 0.0이면 빈 문자열을 만드십시오. IF 문으로 쉽게 할 수 있습니다.

은 기본적으로 그냥 할 : C#을

Dim NewString as String 
Dim testdecimal as decimal = 0.0 

if(testdecimal =0.0) Then 
NewString = String.Empty 
Else 
NewString = Cstr(testdecimal) 
END IF 
관련 문제