2013-05-22 5 views
0

위도와 경도가 두 배로되어 있으며 점으로 문자열 형식으로 변환하려고합니다.C# double을 문자열로 변환 마지막 숫자를 자르십시오

start_lon.ToString(CultureInfo.InvariantCulture) 

을하고 난 지금 포맷을 취득 (나는 점을 얻을)하지만 난 가끔 내가 마지막 번호의 일부를 잃었 것을 알아 : 그래서 내가 사용하고 있습니다. 왜 그런가? 예를 들어 숫자 16.597571661711296이 있는데이 문자열은 "16.5975716617113"입니다. 나는 그것이 "반올림"(영어로 올바른 단어인지 확실하지 않음) 번호를 알고 있지만 왜 그런가? 어떻게 해결할 수 있습니까?

답변

1

번호 형식은 소수점 자리의 숫자가 포함되어 있습니다.

var nfi = (System.Globalization.NumberFormatInfo)System.Globalization.CultureInfo.InvariantCulture.NumberFormat.Clone(); 
nfi.NumberDecimalDigits = xxx; 

start_lon.ToString(nfi); 
0

그리고 나는이 문제를 어떻게 해결할 수 있습니까? 대신 double

decimal n = 16.597571661711296M; 
// This writes: 16.597571661711296 
Console.WriteLine(n.ToString("G", CultureInfo.InvariantCulture)); 

사용 decimal 유형

관련 문제