2013-09-25 2 views
-8

어떻게 소수 자릿수의 소수 부분을 가질 수 있습니까? g.소수 구분의 10 진수 문자열 표현을 가져 오는 방법은 무엇입니까?

decimal d = 10; 
decimal result = d/10; 

이 어떻게 (A decimal하지 string로 여전히) 1.0 가질 수 1 준다?

+1

, 당신은'소수 part'하지만 바로 데이터의 '진수 representation'를 싶지 않아? – DrCopyPaste

+0

귀하의 부서에서 'd'를 사용하지 않습니다. – Jonesopolis

+4

그들은 같은 숫자 값입니다. 표현의 문제라면'.ToString ("#. ##"); ' –

답변

4

십진수 값 11.0은 동일합니다. 소수점 이하 자릿수의 형식을보고 싶다고 가정합니다.

이렇게하려면 .NET format strings을 사용할 수 있습니다. 개인적으로, 나는 일반적으로 custom format strings를 사용하므로는 다음과 같습니다

string formattedDecimal = result.ToString("#,##0.0"); 

# 문자가있는 경우는 거기에 숫자를 넣어 의미하지만, 앞에 0을 사용하지 마십시오. 0 문자는 0이더라도 숫자가있을 수 있음을 의미하므로 11.0으로 형식이 지정됩니다. 그룹화를 원하지 않는다면, 해시와 쉼표를 생략하고 ToString("0.0")을 가질 수 있습니다. 그러면 똑같은 것을 얻을 수 있으며 잠재적 인 수천 개의 그룹을 제외 할 수 있습니다.

1

는 표현 문제의 경우 :

using System; 

public class Test 
{ 
    public static void Main() 
    { 
     decimal d = 10; 
     decimal result = d/10; 

     Console.WriteLine(string.Format("{0:0.0}", result)); 
     // or 
     Console.WriteLine(result.ToString("0.0")); 
    } 
} 

그들은 모두 출력으로 1.0 인쇄 할 수 있습니다. 무슨 뜻

DEMO

+3

Ideone이 사용하는 것이 확실하지 않지만 실제 .NET 환경에서'Math.Round (result, 1)'은 여전히'1m'의 십진수 값을 반환하기 때문에 1.0은 아니고'1 '이됩니다. –

+0

@JoeEnos 젠장, 이데온이 날 바보짓을했다. –

관련 문제