이 때, 소수 d = 12.345 표현식에서는 d.토스트링 (C" ";) 또는 스테링스포르마 (,}, {0 c " ", d) 단, 현재 수익률이 - $12.35 culture& # 39 의 설정 등 통화 기호를 사용할 수 있습니다.
참고로 [" C";] (http://msdn.microsoft.com/en-us/library/dwhawy9k% 28v = vs. 110%29.aspx # 스포르마스트링) 는 현행 자릿수를 있다. 넌 언제나 필요한 기본 'C' like '} {precisiontm 지정자와 오버라이드합니다 강제로 정밀도의 스테링스포르마 (,}, {0 c2 " ", 5.123d)'.
동일한 작업을 하고 있는 '더블' ('" 25";') 의 소수점 이니요를 부여하느뇨 위의 각.
필요할 때 소수점 약 95% s 2 로 소수점 있다 # 39 의 it& it& 가능성이 있기 때문에, 이 경우 과태료를 통화화 # 39 이것은 아마도 95% 의 시간:
Decimal.Parse("25.0").ToString("c") => "$25.00"
Xaml = {c} '또는' 가격, 스테링포르마 바인딩하면 방금 사용
내가 어디서 실행했음 1 건) 로 보낼 때 필요한 것은 소수 소수로 amazon& # 39 의 xml webservice. 이 때문에 불만을 소수점 값 (원래 SQL Server 에서) 는 서비스 개시 ',' 로 전송되는 25.1200 거부됩니다 ('25.12' 가 걱정했던것 형식).
I do) 는 데 필요한 모든 데키마라자로런드 (.) '와' 소수점 두 이 문제를 해결하십시오.
// This is an XML message - with generated code by XSD.exe
StandardPrice = new OverrideCurrencyAmount()
{
TypedValue = Decimal.Round(product.StandardPrice, 2),
currency = "USD"
}
그래서 '형식은' 소수 ',' 메리 페드발루 couldn& # 39 라운드 't just do it 및 유지하는 데 필요한 ToString (" N2";)' 과 이를 '소수'.
의 소수점 표현 방법을 설명하고 있는 수준의 오토메이티드 포맷 문자열을 가치, 작동하잖아.
그러나 실제로 변경할 경우, you need to write something precision 에 저장된 실제값 다음과 같습니다.
public static class PrecisionHelper
{
public static decimal TwoDecimalPlaces(this decimal value)
{
// These first lines eliminate all digits past two places.
var timesHundred = (int) (value * 100);
var removeZeroes = timesHundred / 100m;
// In this implementation, I don't want to alter the underlying
// value. As such, if it needs greater precision to stay unaltered,
// I return it.
if (removeZeroes != value)
return value;
// Addition and subtraction can reliably change precision.
// For two decimal values A and B, (A + B) will have at least as
// many digits past the decimal point as A or B.
return removeZeroes + 0.01m - 0.01m;
}
}
예를 들어, 단위 테스트:
[Test]
public void PrecisionExampleUnitTest()
{
decimal a = 500m;
decimal b = 99.99m;
decimal c = 123.4m;
decimal d = 10101.1000000m;
decimal e = 908.7650m
Assert.That(a.TwoDecimalPlaces().ToString(CultureInfo.InvariantCulture),
Is.EqualTo("500.00"));
Assert.That(b.TwoDecimalPlaces().ToString(CultureInfo.InvariantCulture),
Is.EqualTo("99.99"));
Assert.That(c.TwoDecimalPlaces().ToString(CultureInfo.InvariantCulture),
Is.EqualTo("123.40"));
Assert.That(d.TwoDecimalPlaces().ToString(CultureInfo.InvariantCulture),
Is.EqualTo("10101.10"));
// In this particular implementation, values that can't be expressed in
// two decimal places are unaltered, so this remains as-is.
Assert.That(e.TwoDecimalPlaces().ToString(CultureInfo.InvariantCulture),
Is.EqualTo("908.7650"));
}
또는
이것은 오래된 질문, 하지만 나는 알고 깜짝 놀랐다 있다는 답변을 게시물로의 없는 듯했다.
39 (bankers 둥글리기 didn& 사용할 수 없다.
39, 소수점 값으로 didn& 유지할 수 없다.
이것이 내가 사용하게 된다.
http://msdn.microsoft.com/en-us/library/9s0xa85y.aspx
이렇게 하면:
통화 및 디스플레이하여 이상적임 금액을.
대한 설명서 ToString (" F";): # 포르마스트링 http://msdn.microsoft.com/en-us/library/dwhawy9k% 28v 110%29.aspx (덕분에 함께 존 슈나이더구요) = vs.
표시용으로만 필요한 경우 string.Format을 사용하십시오.
http://www.csharp-examples.net/string-format-double/
'm'은 소수점 접미사입니다. 소수점 접미사에 대해 알아보세요:
http://msdn.microsoft.com/en-us/library/364x0z75.aspx
이 때, 소수 d = 12.345 표현식에서는 d.토스트링 (C" ";) 또는 스테링스포르마 (,}, {0 c " ", d) 단, 현재 수익률이 - $12.35 culture& # 39 의 설정 등 통화 기호를 사용할 수 있습니다.
참고로 [" C";] (http://msdn.microsoft.com/en-us/library/dwhawy9k% 28v = vs. 110%29.aspx # 스포르마스트링) 는 현행 자릿수를 있다. 넌 언제나 필요한 기본 'C' like '} {precisiontm 지정자와 오버라이드합니다 강제로 정밀도의 스테링스포르마 (,}, {0 c2 " ", 5.123d)'.
물론 당신이 원한다면 포맷됩니다 쉼표 같은 3,456,789.12 소수점 (단, 통화 기호 없음).
39 의 높은 가리키는 두 골을 there& 이미 답을 데키마라자로런드 (.) 하지만 조금 더 필요한 것 같아요 - 예기치 않은 중요한 속성 때문에 설명은 there& # 39, s, t # 39 있는 소수 isn& 명백하네.
39, & # 39 knows& 소수. 이 회사는 시용되는 소수점 위치를 기반으로 it came from.
예를 들어 다음과 같은 예상치 못한 수 있습니다.
동일한 작업을 하고 있는 '더블' ('" 25";') 의 소수점 이니요를 부여하느뇨 위의 각.
필요할 때 소수점 약 95% s 2 로 소수점 있다 # 39 의 it& it& 가능성이 있기 때문에, 이 경우 과태료를 통화화 # 39 이것은 아마도 95% 의 시간:
Xaml = {c} '또는' 가격, 스테링포르마 바인딩하면 방금 사용
내가 어디서 실행했음 1 건) 로 보낼 때 필요한 것은 소수 소수로 amazon& # 39 의 xml webservice. 이 때문에 불만을 소수점 값 (원래 SQL Server 에서) 는 서비스 개시 ',' 로 전송되는 25.1200 거부됩니다 ('25.12' 가 걱정했던것 형식).
I do) 는 데 필요한 모든 데키마라자로런드 (.) '와' 소수점 두 이 문제를 해결하십시오.
그래서 '형식은' 소수 ',' 메리 페드발루 couldn& # 39 라운드 't just do it 및 유지하는 데 필요한 ToString (" N2";)' 과 이를 '소수'.
다음은 링크파드 프로그램 표시하십시오 조금 다른 형식:
결과가 나타납니다.
Math.Round 메서드 (소수점, Int32)
매우 드물게 투석실에다가 로렌아줌마가 경우 빈 문자열을 값은 0 입니다.
그 답을 찾을 수 있습니다 잘못된 계시한하나님께 낭비됩니다 people& (대부분) 이 최고 평점 10 분, s # 39 시간입니다.
이 중 어느 한 정확히 내가 필요한 것으로 '0.005 및 강제로 2 라운드 d.p. > -; 0.01 '
이로 인해 2 d.퍼 单捞磐啊 precisiontm 2 로 d.퍼 있다. 우리는 d.퍼 하려면 적어도 2
다음 2 개 이상의 d.퍼 둥글리기 보장할 수 없다
그러나 실제로 변경할 경우, you need to write something precision 에 저장된 실제값 다음과 같습니다.
예를 들어, 단위 테스트:
이스터 맥그로바이제이션 숫자를 포맷하십시오 필요한 형식을 사용할 수 있습니다.
필요한 경우 '와' decimal d = 1.2300000 트림하려면 소수점 두 redhat. 그런 것이 이렇게 인쇄할 수 있는 'F2 는 문자열 (", F2", ci),' d.토스트링 포맷 중 2 로 소수점 및 ci 는 로켈을 또는 쿠르투라인포.
이 링크를 클릭하면 자세한 정보 확인 http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
[마이크 M. & # 39 의 오토메이티드] (https://stackoverflow.com/a/5724542) 는 위한 완벽한 날 '' t have a # 39, .NET, 하지만 .NET 핵심 doesn& 데키마라자로런드 당시 방법을 쓰기 시작했다.
Net 에서는 코어, 내가 사용해야 했습니다.
해키 문자열로 변환한 등, 한 방법 입니다.
https://msdn.microsoft.com/en-us/library/dwhawy9k% 110%29.aspx 28v = vs.
이 링크를 통해 문제를 처리할 수 있는 방법을 자세히 설명합니다 및 확인하시겠습니까 경우 더 많은 일을 할 수 있습니다. 단순하게 목적으로 그리웠댔지 해야 할 것은
스케쳐내 통화화 대해 이 쉽게 할 수 있습니다 입력하여 C2" "; 대신 F2" ";