문제

의 차이는 무엇입 Math.Floor()Math.Truncate() 습니다.NET?

올바른 솔루션이 없습니다

다른 팁

Math.Floor 라운드로, Math.Ceiling 라운드까지,그리고 Math.Truncate 라운드 제로를 향해.따라서, Math.Truncate 다음과 같이 Math.Floor 에 대한 긍정적인 숫자와 같은 Math.Ceiling 에 대한 부정적인 숫자입니다.기 reference.

에 대한 완전성, Math.Round 라운드에 가장 가까운 정수입니다.는 경우 번호를 정확히 중간 사이에 두 개의 정수를,그것은 라운드로도 하나입니다. 참조.

도 참조하십시오: Pax 디아블로의 응답.매우 좋습니다!

필요하면 다음 링크를 클릭하십시오에 대한 설명은 MSDN:

  • Math.Floor, 는 라운드 아래로 향한 부정적인한다.
  • Math.Ceiling, 는 라운드 최대 쪽으로 긍정적인한다.
  • Math.Truncate, 는 라운드 위로 또는 아래로 향한다.
  • Math.Round, 는 라운드를 정지 또는 지정된 숫자의 진행하고 있습니다.지정할 수 있습니다 동작의 경우에 정확히 같은 거리이 두 가능성과 같은 반올림하도록 최종 숫자도("Round(2.5,MidpointRounding.ToEven)"되고 2)나는 더 멀리에서 영("Round(2.5,MidpointRounding.AwayFromZero)"되 3).

다음 도표와 테이블 도움이 될 수 있습니다.

-3        -2        -1         0         1         2         3
 +--|------+---------+----|----+--|------+----|----+-------|-+
    a                     b       c           d            e

                       a=-2.7  b=-0.5  c=0.3  d=1.5  e=2.8
                       ======  ======  =====  =====  =====
Floor                    -3      -1      0      1      2
Ceiling                  -2       0      1      2      3
Truncate                 -2       0      0      1      2
Round (ToEven)           -3       0      0      2      3
Round (AwayFromZero)     -3      -1      0      2      3

Note Round 입니다 많은 것보다 더 강력한 것,단순히 할 수 있기 때문에 라운드의 특정 번호를 진행하고 있습니다.다른 모든 라운드 제로 소수에 항상있다.예를 들어:

n = 3.145;
a = System.Math.Round (n, 2, MidpointRounding.ToEven);       // 3.14
b = System.Math.Round (n, 2, MidpointRounding.AwayFromZero); // 3.15

다른 기능을 사용하는 곱/나누기 속임수를 동일한 효과를 얻을:

c = System.Math.Truncate (n * 100) / 100;                    // 3.14
d = System.Math.Ceiling (n * 100) / 100;                     // 3.15

Math.Floor() 라운드로 부정적인 인피니티

Math.Truncate 라운드 위로 또는 아래로 향한다.

예를 들어:

Math.Floor(-3.4)     = -4
Math.Truncate(-3.4)  = -3

Math.Floor(3.4)     = 3
Math.Truncate(3.4)  = 3

몇 가지 예:

Round(1.5) = 2
Round(2.5) = 2
Round(1.5, MidpointRounding.AwayFromZero) = 2
Round(2.5, MidpointRounding.AwayFromZero) = 3
Round(1.55, 1) = 1.6
Round(1.65, 1) = 1.6
Round(1.55, 1, MidpointRounding.AwayFromZero) = 1.6
Round(1.65, 1, MidpointRounding.AwayFromZero) = 1.7

Truncate(2.10) = 2
Truncate(2.00) = 2
Truncate(1.90) = 1
Truncate(1.80) = 1

그들은 동등한 기능으로 긍정적인 숫자입니다.는 방식에 차이가 처리하는 부정적인 숫자입니다.

예를 들어:

Math.Floor(2.5) = 2
Math.Truncate(2.5) = 2

Math.Floor(-2.5) = -3
Math.Truncate(-2.5) = -2

MSDN 링크:- 수학.층 방법 - 수학.Truncate 방법

P.S.주의 수학이다.라운드 그것은 되지 않을 수 있습니다 당신이 무엇을 기대합니다.

을 얻는"표준"라운딩과 사용:

float myFloat = 4.5;
Console.WriteLine( Math.Round(myFloat) ); // writes 4
Console.WriteLine( Math.Round(myFloat, 0, MidpointRounding.AwayFromZero) ) //writes 5
Console.WriteLine( myFloat.ToString("F0") ); // writes 5

Math.Floor() 라운드 "으로 부정적인 무한대"에서 규정 준수 IEEE 표준 754 섹션 4.

Math.Truncate() 라운드"가장 가까운 정수로다."

math.floor()

최대 정수를 반환합니다 작거나 같음 지정된 번호입니다.

MSDN 시스템입니다.수학.층

math.truncate()

계산하는 중요한 부분입니다.

MSDN 시스템입니다.수학.truncate

Math.Floor(2.56) = 2
Math.Floor(3.22) = 3
Math.Floor(-2.56) = -3
Math.Floor(-3.26) = -4

Math.Truncate(2.56) = 2
Math.Truncate(2.00) = 2
Math.Truncate(1.20) = 1
Math.Truncate(-3.26) = -3
Math.Truncate(-3.96) = -3

또한 수학.라운드()

   Math.Round(1.6) = 2
   Math.Round(-8.56) = -9
   Math.Round(8.16) = 8
   Math.Round(8.50) = 8
   Math.Round(8.51) = 9

Math.floor sliiiide 왼쪽...
Math.ceil sliiiide 바로...
Math.truncate criiiiss crooooss(층/ceil 항상을 향 0)
Math.round cha cha,진짜 부드러운...(가장 가까운 쪽)

Let's go 작동하려면!(⌐□_□)

왼쪽... Math.floor
그것을 지금 다시 y'all... --
두 홉 이번에... -=2

모두 손뼉을 쳐 물건 물건

낮은 어떻게 갈 수 있습니까?할 수 있습니 아래로 이동 낮은가?모든 방법 floor?

if (this == "wrong")
    return "i don't wanna be right";

Math.truncate(x) 또한 같은 int(x).
을 제거하여 긍정적 또는 부정적인 부분에,당신은 항상 쪽으로 향하고 0.

Math.Floor():최대 정수를 반환합니다 작거나 같음을 지정된 두 번 정밀 부동 소수점 번호입니다.

Math.Round():라운드 값을 가장 가까운 정수 또는 지정된 숫자의 분수 자리입니다.

Mat.floor() 은 항상 아래 라운드 ie., 그것은 반 적 정수입니다.동 round() 이 반환됩니다 가장 가까운 정수

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top