Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL TRUNCATE()와 ROUND() 함수의 중요한 차이점은 무엇입니까?


TRUNCATE() 함수는 소수 자릿수 D로 잘린 X 값을 반환하는 데 사용됩니다. D가 0이면 소수점이 제거됩니다. D가 음수이면 값의 정수 부분에 있는 D개의 값이 잘립니다. 다음 예를 고려하십시오 –

mysql> Select TRUNCATE(7.536432,2);
+----------------------+
| TRUNCATE(7.536432,2) |
+----------------------+
|                 7.53 |
+----------------------+
1 row in set (0.00 sec)

ROUND() 함수는 가장 가까운 정수로 반올림된 X를 반환합니다. 두 번째 인수 D가 제공되면 함수는 D 소수점 이하 자릿수로 반올림된 X를 반환합니다. D는 양수여야 하며 그렇지 않으면 소수점 오른쪽의 모든 숫자가 제거됩니다. 다음 예를 고려하십시오 -

mysql>SELECT ROUND(5.693893);
+---------------------------------------------------------+
|                    ROUND(5.693893)                      |
+---------------------------------------------------------+
|                           6                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)  

mysql>SELECT ROUND(5.693893,2);
+---------------------------------------------------------+
|                   ROUND(5.693893,2)                     |
+---------------------------------------------------------+
|                          5.69                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)  

위의 정의와 예에서 우리는 이 두 함수 사이의 다음과 같은 차이점을 관찰할 수 있습니다 -

  • ROUND() 함수는 두 번째 인수 D와 숫자 자체(D 소수점 이하 자릿수>=5 여부)에 따라 숫자를 반올림 또는 내림합니다.
  • TRUNCATE() 함수는 D 소수점 이하 자릿수가>=5인지 여부를 확인하지 않고 D 소수점 이하 자릿수까지 숫자를 자릅니다.
mysql> Select ROUND(1.289,2)AS 'AFTER ROUND',TRUNCATE(1.289,2)AS 'AFTER TRUNCATE';
+-------------+----------------+
| AFTER ROUND | AFTER TRUNCATE |
+-------------+----------------+
|        1.29 |           1.28 |
+-------------+----------------+
1 row in set (0.00 sec)