소수점 이하 2 자리까지 표시
PHP소수점 이하 2 자리까지 표시
PHP 문자열을 소수점 둘째 자리로 반올림하는 올바른 방법은 무엇입니까?
$number = "520"; // It's a string from a DB
$formatted_number = round_to_2dp($number);
echo $formatted_number;
출력은 520.00이어야합니다.
round_to_2dp () 함수 정의는 어떻게해야합니까?
해결법
-
==============================
1.
number_format ()을 사용할 수 있습니다.
return number_format((float)$number, 2, '.', '');
예:
$foo = "105"; echo number_format((float)$foo, 2, '.', ''); // Outputs -> 105.00
이 함수는 문자열을 반환합니다.
-
==============================
2.
또는,
$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00
-
==============================
3.
round ()를 사용하십시오 (float 형식으로만 숫자를 예상 할 경우 사용, 그렇지 않으면 Codemwnci에서 주어진 대답으로 number_format () 사용).
echo round(520.34345,2); // 520.34 echo round(520, 2); // 520
매뉴얼에서 :
...
-
==============================
4.
시험:
$number = 1234545454; echo $english_format_number = number_format($number, 2);
출력은 다음과 같습니다.
1,234,545,454.00
-
==============================
5.
http://php.net/manual/en/function.round.php
e.
echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06
-
==============================
6.
PHP number_format () 함수를 사용하십시오.
-
==============================
7.
PHP printf 또는 sprintf 함수를 사용할 수 있습니다.
sprintf 예제 :
$num = 2.12; echo sprintf("%.3f",$num);
echo를 사용하지 않고 동일하게 실행할 수 있습니다. 예 : sprintf ( "%. 3f", $ num);
산출:
2.120
또는 printf를 사용하여 다음을 수행하십시오.
echo printf("%.2f",$num);
산출:
2.124
-
==============================
8.
이 문제를 해결하는 또 다른 이국적인 방법은 bcadd ()를 0의 $ right_operand에 더미 값과 함께 사용하는 것입니다.
$formatted_number = bcadd($number, 0, 2);
-
==============================
9.
round_to_2dp는 사용자 정의 함수입니다. 함수의 선언을 게시하지 않으면 아무 것도 할 수 없습니다.
그러나, 내 생각 엔이 number_format ($ number, 2);
-
==============================
10.
나는 내 것을 만든다.
$decimals = 2; $number = 221.12345; $number = $number * pow(10,$decimals); $number = intval($number); $number = $number / pow(10,$decimals);
-
==============================
11.
$retailPrice = 5.989; echo number_format(floor($retailPrice*100)/100,2, '.', '');
숫자를 반올림하지 않고 5.98을 반환합니다.
-
==============================
12.
bcdiv($number, 1, 2) //2 varies for digits after decimal
소수점 이하 2 자리가 정확하게 표시됩니다.
이점: 실수가 아닌 float 값 뒤에 두 자리를 표시하려면이 값을 사용하십시오.
-
==============================
13.
$number = sprintf('%0.2f', $numbers); // 520.89898989 -> 520.89
그러면 10 진수 뒤에 2 자리 숫자가 생깁니다.
-
==============================
14.
전체 프로젝트에서 2 자리 10 진수를 사용하려면 정의 할 수 있습니다.
bcscale(2);
그러면 다음 함수가 원하는 결과를 생성합니다.
$myvalue=10.165445; echo bcadd(0,$myvalue); //result=10.11
하지만 bcscale 함수를 사용하지 않으면 다음과 같이 코드를 작성하여 원하는 결과를 얻을 수 있습니다.
$myvalue=10.165445; echo bcadd(0,$myvalue,2); //result=10.11
더 많은 것을 알기 위해서
-
==============================
15.
조건부 반올림을 위해 즉. 그렇지 않으면 실제로 필요한 소수점을 표시합니다. 정수
123.56 => 12.56
123.00 => 123
$somenumber = 123.56; $somenumber = round($somenumber,2); if($somenumber == intval($somenumber)) { $somenumber = intval($somenumber); } echo $somenumber; // 123.56 $somenumber = 123.00; $somenumber = round($somenumber,2); if($somenumber == intval($somenumber)) { $somenumber = intval($somenumber); } echo $somenumber; // 123
-
==============================
16.
$twoDecNum = sprintf('%0.2f', round($number, 2));
소수점 이하 반올림 한 후 소수점 이하 2 자리로 강제로 반올림하여 숫자를 올바르게 반올림합니다.
-
==============================
17.
PHP number_format () 함수를 사용하십시오. 예 :
$num = 7234545423; echo number_format($num, 2);
출력은 다음과 같습니다.
7,234,545,423.00
-
==============================
18.
라운드없이 번호
$double = '21.188624'; echo intval($double).'.'.substr(end(explode('.',$double)),0,2);
-
==============================
19.
여기에서 나는 십진수 2를 얻는다. (점) 함수를 사용하여 ..
function truncate_number( $number, $precision = 2) { // Zero causes issues, and no need to truncate if ( 0 == (int)$number ) { return $number; } // Are we negative? $negative = $number / abs($number); // Cast the number to a positive to solve rounding $number = abs($number); // Calculate precision number for dividing / multiplying $precision = pow(10, $precision); // Run the math, re-applying the negative value to ensure returns correctly negative / positive return floor( $number * $precision ) / $precision * $negative; }
위 기능의 결과 :
echo truncate_number(2.56789, 1); // 2.5 echo truncate_number(2.56789); // 2.56 echo truncate_number(2.56789, 3); // 2.567 echo truncate_number(-2.56789, 1); // -2.5 echo truncate_number(-2.56789); // -2.56 echo truncate_number(-2.56789, 3); // -2.567
새로운 정답
PHP 기본 함수 bcdiv 사용
echo bcdiv(2.56789, 1, 1); // 2.5 echo bcdiv(2.56789, 1, 2); // 2.56 echo bcdiv(2.56789, 1, 3); // 2.567 echo bcdiv(-2.56789, 1, 1); // -2.5 echo bcdiv(-2.56789, 1, 2); // -2.56 echo bcdiv(-2.56789, 1, 3); // -2.567
-
==============================
20.
PHP round () 함수를 사용할 수 있습니다.
echo round(3.4); // 3 echo round(3.5); // 4 echo round(3.6); // 4 echo round(3.6, 0); // 4 echo round(1.95583, 2); // 1.96 echo round(1241757, -3); // 1242000 echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06
from https://stackoverflow.com/questions/4483540/show-a-number-to-2-decimal-places by cc-by-sa and MIT lisence
'PHP' 카테고리의 다른 글
IN 절 배열로 PDO 사용하기 (0) | 2018.09.03 |
---|---|
PHP에서 친숙한 URL을 만드는 방법? (0) | 2018.09.03 |
JSON 인코딩 결과 (0) | 2018.09.03 |
변환 날짜 형식 yyyy-mm-dd => dd-mm-yyyy [duplicate] (0) | 2018.09.03 |
PHP에서 MySQL 테이블의 마지막 삽입 ID를 얻는 방법은 무엇입니까? (0) | 2018.09.03 |