소수점 이하 두 자리 만 갖도록 C #에서 a Double
를 어떻게 형식화 String
합니까?
String.Format("{0:0.00}%", myDoubleValue)
숫자를 사용 하면 반올림되고 반올림하지 않고 간단한 자르기를 원합니다. 또한 전환 String
이 문화에 민감 해지기를 원합니다 .
답변
나는 다음을 사용한다 :
double x = Math.Truncate(myDoubleValue * 100) / 100;
예를 들어 :
숫자가 50.947563이고 다음을 사용하면 다음이 발생합니다.
- Math.Truncate(50.947563 * 100) / 100;
- Math.Truncate(5094.7563) / 100;
- 5094 / 100
- 50.94
그리고 답을 잘랐습니다. 이제 문자열을 포맷하려면 다음을 수행하십시오.
string s = string.Format("{0:N2}%", x); // No fear of rounding and takes the default number format
답변
다음 은 숫자를 반올림 하지만으로 인해 소수점 이하 2 자리까지 표시합니다 (마침표 0 제거) .##
.
decimal d0 = 24.154m;
decimal d1 = 24.155m;
decimal d2 = 24.1m;
decimal d3 = 24.0m;
d0.ToString("0.##"); //24.15
d1.ToString("0.##"); //24.16 (rounded up)
d2.ToString("0.##"); //24.1
d3.ToString("0.##"); //24
http://dobrzanski.net/2009/05/14/c-decimaltostring-and-how-to-get-rid-of-trailing-zeros/
답변
먼저 자른 다음 형식을 지정하는 것이 좋습니다.
double a = 123.4567;
double aTruncated = Math.Truncate(a * 100) / 100;
CultureInfo ci = new CultureInfo("de-DE");
string s = string.Format(ci, "{0:0.00}%", aTruncated);
2 자리 자르기에는 상수 100을 사용하십시오. 원하는 소수점 다음의 숫자만큼 1과 숫자 0을 사용하십시오. 서식 결과를 조정해야하는 문화권 이름을 사용하십시오.
답변
가장 간단한 방법은 숫자 형식 문자열을 사용하는 것입니다.
double total = "43.257"
MessageBox.Show(total.ToString("F"));
답변
나는 price.ToString("0.00")
0을 얻는 데 사용 합니다.
답변
Kyle Rozendo가 표현한 c # 함수 :
string DecimalPlaceNoRounding(double d, int decimalPlaces = 2)
{
d = d * Math.Pow(10, decimalPlaces);
d = Math.Truncate(d);
d = d / Math.Pow(10, decimalPlaces);
return string.Format("{0:N" + Math.Abs(decimalPlaces) + "}", d);
}
답변
반올림 한 다음 버려야 할 소수를 하나 더 추가하는 방법은 다음과 같습니다.
var d = 0.241534545765;
var result1 = d.ToString("0.###%");
var result2 = result1.Remove(result1.Length - 1);