2009-03-03 4 views
12

돈 값을 반환하는 데이터베이스 필드를 쿼리 할 때이 문자열을 할당하지만 끝에 00이 추가됩니다.C# 문자열로 통화

쿼리 나 문자열 (string value = Convert.ToString(ReturnValue);) 이를 할당하지만 내가 잘못가는이 접근하는 가장 좋은 방법있어 어디에서 출력, 당신이 나에게 조언을 할 수 30.0000

로 표시 될 때

30.00 반환?

+0

문자열로 변환하기 전에 데이터베이스에서 다시 가져 오는 변수의 .NET 유형은 무엇입니까? –

+0

OP는 문자열 서식 코드를 사용할 수 있습니다. –

답변

1

이 시도 :

yourValueHere.ToString("0.00") 
3

내가

string value = ReturnValue.ToString("0.00"); 

이것은 형식 문자열을 수락를 toString 오버로드를 사용하여 같은 것을 사용하십시오. 위 형식 문자열 "0.00"은 소수점 두 자리를 지정합니다.

6

통화 문자로 서식을 지정 하시겠습니까?

그렇다면 ...

decimal m = 3.4; 

string s = string.Format("{0:c}", m); 

// s will be £3.40, $3.40, etc depending on your locale settings 
+0

감사합니다, 그것은 나를 위해 잘 작동합니다 ... –

0

는 SQLServer에에서 돈을 데이터 형식의 정밀도 4 개 소수 자릿수가 소수에 해당합니다. 10 진수가 문자열로 변환 될 때 이것이 정밀도라고 가정합니다. 가장 좋은 방법은 항상 변환을 할 때 "#, ## 0.00"과 같은 형식 문자열을 사용하는 것입니다.

0

Money 데이터 형식의 소수 자릿수는 4 자입니다. ToString() 인수에 형식을 지정하거나 문자열로 변환하기 전에 값을 반올림하여 지정할 수 있습니다.

.ToString()을 사용하는 경우 내가 아는 한 반올림하지 않습니다. 네가 숫자를 잃어 버렸을거야.

반올림하면 숫자를 잘라내는 것이 아닙니다. 여기에 (테스트되지 않은 코드)를 반올림에 대한 예제는 다음과 같습니다

string value = Math.Round(ReturnValue, 2).ToString(); 
12

MartGriff,

내 최고의 조언은 SqlMoney 유형을 사용하여 이중으로 변환하는 것입니다. 거기에서 원하는대로 출력 할 수 있습니다! 은 MSDN을 확인, 서식 설정 옵션을 보려면

System.Data.SqlTypes.SqlMoney ReturnValue; 

//Set your returnValue with your SQL statement 
ReturnValue = ExecuteMySqlStatement(); 

//Get the format you want 

//$30.00 
string currencyFormat = ReturnValue.ToDouble().ToString("c"); 

//30.00 
string otherFormat = ReturnValue.ToDouble().ToString("0.00"); 

:

다음은 예입니다

행운의

http://msdn.microsoft.com/en-us/library/system.double.tostring.aspx

보다도, 도움이 되었기를 바랍니다.

2

저는 현재 VS 2013 커뮤니티 에디션을 사용하여 보트 독 웹 시스템을 개발 중입니다. 나는 통화 값을 텍스트 상자로 출력하는 방법을 알아 내려고 노력했다.

I이었다 사용 방법

fieldName.Text = decimalValue.ToString ("C");

완벽하게 작동합니다.