2017-10-30 1 views

답변

0

금액이 2 배인 경우이 작업이 가능합니다. amount가 문자열이면 다음 행에 ToString()이 필요하지 않습니다. 이것은 당신이 당신의 질문에 나열된 형식을 가정 참고 : 나는 당신 만 ToString 방법으로이 작업을 수행 할 수있을 것입니다 생각하지 않습니다

string line = string.Concat("$", amount.ToString().Split('.')[0], " dollar(s) ", amount.ToString().Split('.')[1].Substring(0,2), " cents"); 
0

, 그래서 여기에 또 다른 방법입니다.

먼저이 작업을 수행하여 소수 부분을 얻을 수 있습니다 :

var decimalPart = yourDouble - (int)yourDouble; 

그런 다음 배를 진수 (100)에 의한 부분이 int로 결과를 변환 할 수 있습니다.

var twoDigits = (int)(decimalPart * 100); 

가 두 자리 문자열이 변환하려면, 왼쪽에 방금 패드 0 :

var result = twoDigits.ToString().PadLeft(2, '0'); 
0

나는이 사용하는 경우에만 ToString()를 할 수 없다, 그러나 이것은 당신이 원하는 거의이다 :

public static class Extensions 
{ 
    public static string ToFormattedString(this double number) 
    { 
     var integerPart = Convert.ToInt32(number); 
     var decimalPart = Convert.ToInt32((number - integerPart) * 100); 
     return String.Format("{0} dollar(s) {1} cents", integerPart, decimalPart); 
    } 
} 
: 어쨌든)

double d = 15.12; 
var str = d.ToString("0 dollar(s) .00 cents").Replace(".", string.Empty); 

, 나는 당신이 할 수있는 확장 메서드를 작성하는 것이 좋습니다 0

사용 :

Console.WriteLine(d.ToFormattedString()); 
관련 문제