2009-12-10 4 views
3

십진수를 10 진수 + 십진수 4 자로 변환했습니다.소수점이없는 두 자리 형식

다음과 같이 말하십시오. 저는 이중 999,56입니다. 쉼표없이 00000009995600을 얻어야합니다!

및 String.format :

내가 가지고있는 것은 ("{0 : 0000000000.0000}", 값)하지만 내가 얻을 것은 : 이 00000009995600

그래서 내가 지금 무엇을 할 수 있는지 검색하는 것입니다 쉼표에 대한 및 삭제할 수 있지만이 특정 형식으로 서식을 다른 "깨끗한"방법이 있는지 알고 싶습니다?

감사합니다. 당신이 원하지 않는 (또는 수 없습니다)를 곱하면

답변

4

당신이 피하고 싶은 말했다 때문에 String.Replace :

// avoid whacked out cultures 
double value = 999.56m; 
CultureInfo info = CultureInfo.GetCultureInfo("en-US"); 
string s = (10000 * value).ToString("00000000000000", info)); 
Console.WriteLine(s); // displays "00000009995600" 

그러나 실제로 아무 문제가 없습니다.

double value = 999.56m; 
CultureInfo info = CultureInfo.GetCultureInfo("en-US"); 
string s = value.ToString("0000000000.0000", info).Replace(
    info.NumberFormat.NumberDecimalSeparator, 
    String.Empty) 
Console.WriteLine(s); // displays "00000009995600" 
+0

감사합니다. 내가 다른 것을 찾지 못해서 몇 분 전에 똑같은 짓을 했어! 또한 CulterInfo를 사용했지만 GetCulterInfo()를 호출하지 않았습니다. 여기 내가 한 일이 있습니다 : string sep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; Console.WriteLine (String.Format (fromt, testvalue) .Replace (sep, ""))); 감사합니다. – Gohlool

15
string.Format("{0:00000000000000}", value * 10000) 
+0

글쎄, 저 역시 분명했습니다. 그러나 문제는 내가 부활시키는 가치에 대해 전혀 몰랐습니다! 그것은 또한 1.898 또는 xx.x 또는 xxxxx.xxx 또는 무엇이든 될 수 있습니다! – Gohlool

+0

그래서? 너 해봤 어? – Stu

-2

이 작업을 할 수 있습니다

string newValue = value.Replace(",", ""); 
0

여기 내 솔루션은 제이슨의 대답과 거의 동일합니다 :

string sep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; 
Console.WriteLine(String.Format(fromt, testvalue).Replace(sep, "")); 

덕분에 나는 다른 "간단한"방법이 없다는 생각 때문에글쎄, 나는이() 메소드를 교체 사용합니다!

0
double val = 12345.6789; 
return val.ToString().Split('.')[0]; 
+0

자바에서 코드를 시도해도 분할 ('.')이 허용되지 않습니다. 다음과 같이 사용할 수 있습니다 : "3232.122".split (".") [0]; – iCrazybest

관련 문제