소수점 이하 두 자리까지 숫자 표시

PHP 문자열을 소수점 두 자리 반올림하는 올바른 방법은 무엇인가요?

$number = "520"; // It's a string from a database

$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

이 함수는 a 구체화하십시오 .

해설 (9)

또는

$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00
해설 (3)

'차' () 사용하여 (사용할 경우 검색되어야 숫자를 부동 소수점 포맷에만, 다른 number_format () 를 사용하여 답을 제공한 코뎀츠키).

echo round(520.34345, 2);   // 520.34
echo round(520.3, 2);       // 520.3
echo round(520, 2);         // 520

&Solarisdvd 수작업식:

&gt. # 설명: 부동 소수점 라운드 (부동 소수점 $ 발 (int = 0, $ precisiontm [, int = $ 모드이면 PHP_ROUND_HALF_UP]]).

&gt. '발' 을 라운드된 되돌려줍니다 값을 지정한 'precisiontm' (이후 자리 수를 소수점 이하). 제로 (기본값) '또는' precisiontm 제외어 수도 있습니다.

.

&gt. # # 1 라운드 () '예' (예: &gt. php &lt,? 에코 라운드 (3.4). 3 // 라운드 (3.5), 에코 4 // 에코 라운드 (36). 4 // 에코 라운드 (3.6tb, 0); 4 // 에코 라운드 (1.95583, 2). 1.96 // 에코 라운드 (1241757, - 3). 1 242 000 // 에코 라운드 (5.045, 2). 5.05 // 에코 라운드 (5.055, 2). 5.06 // &gt,?

&gt. # # 2 모드 예 예 &gt. php &lt,? 에코 라운드 (9.5ms PHP_ROUND_HALF_UP, 0); 10 // 에코 라운드 (9.5ms PHP_ROUND_HALF_DOWN, 0); 9 // 에코 라운드 (9.5ms PHP_ROUND_HALF_EVEN, 0); 10 // 에코 라운드 (9.5ms PHP_ROUND_HALF_ODD, 0); 9 // &gt. 에코 라운드 (8.5, 0, PHP_ROUND_HALF_UP); 9 // 에코 라운드 (8.5, 0, PHP_ROUND_HALF_DOWN); 8 // 에코 라운드 (8.5, 0, PHP_ROUND_HALF_EVEN); 8 // 에코 라운드 (8.5, 0, PHP_ROUND_HALF_ODD); 9 // &gt,?

해설 (2)

http://php.net/manual/en/function.round.php

echo round(5.045, 2);    // 5.05

echo round(5.055, 2);    // 5.06
해설 (5)

종료기:

$number = 1234545454; 
echo  $english_format_number = number_format($number, 2); 

출력됩니다.

1,234,545,454.00
해설 (3)

Printf 스프링스프 PHP '' 또는 '' 기능을 사용할 수 있습니다.

스프링스프 (를) '예':

$num = 2.12;
echo sprintf("%.3f", $num);

같은 '에코' 도 없이 실행할 수 있습니다. 예: 스프링스프 (,, $ &quot %.3f&quot num) ','

출력:

2.120

Printf (를) '또는':

echo printf("%.2f", $num);

출력:

2.124
해설 (0)

Php number_format () 기능을 사용할 수 있습니다.

예를 들어,

$num = 7234545423;
echo number_format($num, 2);

출력됩니다.

7,234,545,423.00
해설 (0)

다른 방법으로 이 문제를 해결하기 위해 사용하는 것이 더 이국적인 '바카드 ()' 와 더미 값을 right_operand '0' 의 달러.

$formatted_number = bcadd($number, 0, 2);
해설 (2)

PHP number_format() 함수를 사용합니다.

해설 (0)
bcdiv($number, 1, 2) // 2 varies for digits after the decimal point

이 후 소수점 두 자릿수 정확히요 표시됩니다.

  • Advantage:*

스케쳐내 해당되지 않는 것일 뿐, 정수, 부동 소수점 값을 두 자릿수 표시하십시오 후 다음 이.

해설 (1)

round_to_2dp`는 사용자 정의 함수이며, 해당 함수의 선언을 게시하지 않으면 아무 것도 할 수 없습니다.

하지만 제 생각에는 이렇게 하는 것 같습니다: number_format($number, 2);

해설 (1)

Ie 의 조건부 완결. 그렇지 않으면 정말 필요한 곳에 it& # 39 의 정수 (십진수 표시

123.56 = &gt. 12.56

123.00 = &gt. 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    
해설 (0)

I make my own.

$decimals = 2;
$number = 221.12345;
$number = $number * pow(10, $decimals);
$number = intval($number);
$number = $number / pow(10, $decimals);
해설 (2)
$twoDecNum = sprintf('%0.2f', round($number, 2));

이 경우 2 라운드 소수점 숫자 및 스프링스프 제대로 둥글리기 docname redhat. 불과한 것으로 이것은 후에 소수점 1 배치하십시오 둥글리기.

해설 (0)
$retailPrice = 5.989;
echo number_format(floor($retailPrice*100)/100,2, '.', ''); 

이 숫자는 5.98 반환되므로 둥글리기 없이.

해설 (1)

저도 여기서 소수점을 사용하여 '.' (도트) 이후 두 함수.

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 사용 넷윈을 함수 브스트리프

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
해설 (0)

소수점 두 자릿수 전체 프로젝트에 사용할 경우 정의할 수 있습니다.

bcscale(2);

그런 다음 기능을 원하는 결과를 만들 것이다.

$myvalue = 10.165445;
echo bcadd(0, $myvalue);
// result=10.11

그러나 don& 사용할 경우, t # 39 브치계 기능을 원하는 결과를 얻기 위해 다음과 같이 코드를 작성해야 합니다.

$myvalue = 10.165445;
echo bcadd(0, $myvalue, 2);
// result=10.11

자세한 내용은

BC 수학 함수 -

브치계 -

해설 (0)
$number = sprintf('%0.2f', $numbers); // 520.89898989 -> 520.89

이 후 2 부여하느뇨 소수점 수 있습니다.

해설 (1)

수 없이 라운드

$double = '21.188624';
echo intval($double) . '.' . substr(end(explode('.', $double)), 0, 2);
해설 (0)

39 의 here& 다른 솔루션을 통해 스트라토크str_pad:

$num = 520.00
strtok(round($num, 2), '.') . '.' . str_pad(strtok('.'), 2, '0')
해설 (0)