Php убрать знаки после запятой

Подскажите как убрать числа после точки

Почти закончил базовый курс,а как убрать числа не могу догадаться, перебробовал несколько способов, но не помогло.
Задача проще простого, но выводит числа после точки. С этим способом убираются, но число округляется.

 $num=341; $one=$num / 100; $two=($num % 100) /10; $three=($num % 100) %10; $summa=integer; $a=$one+$two+$three; round($a,0); echo "$a
"
; ?>

Подскажите как убрать нули после точки в PHP
Подскажите как убрать нули после точки в PHP, при этом необходимо если есть число после его.

Убрать 2 числа после точки
Здравствуйте. 🙂 Имеется число, оно выводится вида: 89.7452 Мне необходимо откинуть 2 последие.

Как убрать числа после запятой
Доброго времени суток..) Возникла проблема..нужно убрать числа после запятой у double. Именно.

Как убрать числа после запятой в ячейках?
После переноса данных из html во многих ячеек появилось нечто типа: 123.0000 ну вообщем число с 4.

Источник

number_format

Formats a number with grouped thousands and optionally decimal digits using the rounding half up rule.

Parameters

The number being formatted.

Sets the number of decimal digits. If 0 , the decimal_separator is omitted from the return value.

Sets the separator for the decimal point.

Sets the thousands separator.

Return Values

A formatted version of num .

Changelog

Version Description
8.0.0 Prior to this version, number_format() accepted one, two, or four parameters (but not three).
7.2.0 number_format() was changed to not being able to return -0 , previously -0 could be returned for cases like where num would be -0.01 .

Examples

Example #1 number_format() Example

For instance, French notation usually use two decimals, comma (‘,’) as decimal separator, and space (‘ ‘) as thousand separator. The following example demonstrates various ways to format a number:

// english notation (default)
$english_format_number = number_format ( $number );
// 1,235

// French notation
$nombre_format_francais = number_format ( $number , 2 , ‘,’ , ‘ ‘ );
// 1 234,56

// english notation without thousands separator
$english_format_number = number_format ( $number , 2 , ‘.’ , » );
// 1234.57

See Also

  • money_format() — Formats a number as a currency string
  • sprintf() — Return a formatted string
  • printf() — Output a formatted string
  • sscanf() — Parses input from a string according to a format

User Contributed Notes 9 notes

It’s not explicitly documented; number_format also rounds:

$numbers = array( 0.001 , 0.002 , 0.003 , 0.004 , 0.005 , 0.006 , 0.007 , 0.008 , 0.009 );
foreach ( $numbers as $number )
print $number . «->» . number_format ( $number , 2 , ‘.’ , ‘,’ ). «
» ;
?>

0.001->0.00
0.002->0.00
0.003->0.00
0.004->0.00
0.005->0.01
0.006->0.01
0.007->0.01
0.008->0.01
0.009->0.01

Note: use NumberFormatter to convert in human-readable format instead user function from comments:
echo NumberFormatter :: create ( ‘en’ , NumberFormatter :: SPELLOUT )-> format ( 12309 ); // twelve thousand three hundred nine
echo NumberFormatter :: create ( ‘ru’ , NumberFormatter :: SPELLOUT )-> format ( 12307.5 ); // двенадцать тысяч триста семь целых пять десятых
?>

If you want to display a number ending with ,- (like 200,-) when there are no decimal characters and display the decimals when there are decimal characters i use:

function DisplayDouble($value)
list($whole, $decimals) = split (‘[.,]’, $value, 2);
if (intval($decimals) > 0)
return number_format($value,2,».»,»,»);
else
return number_format($value,0,».»,»,») .»,-«;
>

Outputs a human readable number.

# Output easy-to-read numbers
# by james at bandit.co.nz
function bd_nice_number ( $n ) // first strip any formatting;
$n = ( 0 + str_replace ( «,» , «» , $n ));

// is this a number?
if(! is_numeric ( $n )) return false ;

// now filter it;
if( $n > 1000000000000 ) return round (( $n / 1000000000000 ), 1 ). ‘ trillion’ ;
else if( $n > 1000000000 ) return round (( $n / 1000000000 ), 1 ). ‘ billion’ ;
else if( $n > 1000000 ) return round (( $n / 1000000 ), 1 ). ‘ million’ ;
else if( $n > 1000 ) return round (( $n / 1000 ), 1 ). ‘ thousand’ ;

return number_format ( $n );
>
?>

Outputs:

247,704,360 -> 247.7 million
866,965,260,000 -> 867 billion

For Zero fill — just use the sprintf() function

$pr_id = 1;
$pr_id = sprintf(«%03d», $pr_id);
echo $pr_id;

$pr_id = 10;
$pr_id = sprintf(«%03d», $pr_id);
echo $pr_id;

You can change %03d to %04d, etc.

I ran across an issue where I wanted to keep the entered precision of a real value, without arbitrarily rounding off what the user had submitted.

I figured it out with a quick explode on the number before formatting. I could then format either side of the decimal.

function number_format_unlimited_precision ( $number , $decimal = ‘.’ )
$broken_number = explode ( $decimal , $number );
return number_format ( $broken_number [ 0 ]). $decimal . $broken_number [ 1 ];
>
?>

formatting numbers may be more easy if u use number_format function.

I also wrote this :
function something($number)
$locale = localeconv();
return number_format($number,
$locale[‘frac_digits’],
$locale[‘decimal_point’],
$locale[‘thousands_sep’]);
>

My simpler solution to the problem of the decimal number in this function being longer than the specified number of decimals.

Standard result for number_format() is..
number_format(5.00098, 2) = 5.00

My function will return the result = 5.001

// ** Warning: Does not work with scientific notation. Conversion to a real number is required. **

echo auto_decimal_format ( 5.0005620 ); // print 5.0006
echo auto_decimal_format ( 5.0009820 ); // print 5.001
echo auto_decimal_format ( 5.00098 , 8 ); // print 5.00098000
echo auto_decimal_format ( 1.0295691366783E-5 , 2 ); // print 0.00

function auto_decimal_format ( $n , $def = 2 ) $a = explode ( «.» , $n );
if ( count ( $a )> 1 ) $b = str_split ( $a [ 1 ]);
$pos = 1 ;
foreach ( $b as $value ) if ( $value != 0 && $pos >= $def ) $c = number_format ( $n , $pos );
$c_len = strlen ( substr ( strrchr ( $c , «.» ), 1 ));
if ( $c_len > $def ) < return rtrim ( $c , 0 ); >
return $c ; // or break
>
$pos ++;
>
>
return number_format ( $n , $def );
>

To prevent the rounding that occurs when next digit after last significant decimal is 5 (mentioned by several people below):

function fnumber_format ( $number , $decimals = » , $sep1 = » , $sep2 = » )

if (( $number * pow ( 10 , $decimals + 1 ) % 10 ) == 5 ) //if next not significant digit is 5
$number -= pow ( 10 , -( $decimals + 1 ));

return number_format ( $number , $decimals , $sep1 , $sep2 );

$t = 7.15 ;
echo $t . » | » . number_format ( $t , 1 , ‘.’ , ‘,’ ) . » | » . fnumber_format ( $t , 1 , ‘.’ , ‘,’ ) . «\n\n» ;
//result is: 7.15 | 7.2 | 7.1

$t = 7.3215 ;
echo $t . » | » . number_format ( $t , 3 , ‘.’ , ‘,’ ) . » | » . fnumber_format ( $t , 3 , ‘.’ , ‘,’ ) . «\n\n» ;
//result is: 7.3215 | 7.322 | 7.321
> ?>

have fun!

Источник

Округление чисел в PHP

В PHP для округления чисел применяются следующие функции:

Округление к ближайшему целому

Функция round($num, $precision) возвращает округлённое значение $num с указанной точностью $precision (количество цифр после запятой).

echo round(111.455); // 111 // Один знак после запятой echo round(111.455, 1); // 111.5 // Два знака после запятой echo round(111.455, 2); // 111.46

Также функция round() может округлять целую часть числа, для этого нужно указать отрицательный $precision .

// Один знак перед запятой echo round(111.455, -1); // 110 // Два знака перед запятой echo round(111.455, -2); // 100

Третьим аргументом функции можно повлиять способ округления.

PHP_ROUND_HALF_UP Округляет от нуля, когда следующий знак находится посередине.
То есть округляет 1.5 в 2 и -1.5 в -2.
PHP_ROUND_HALF_DOWN Округляет к нулю, когда следующий знак находится посередине.
То есть округляет 1.5 в 1 и -1.5 в -1.
PHP_ROUND_HALF_EVEN Округляет до ближайшего чётного значения, когда следующий знак находится посередине.
То есть округляет 1.5 и 2.5 в 2.
PHP_ROUND_HALF_ODD Округляет до ближайшего нечётного значения, когда следующий знак находится посередине.
То есть округляет 1.5 в 1 и 2.5 в 3.

Округление к большему

Функция ceil($num) – всегда округляет число в большую сторону.

echo ceil(1.1); // 2 echo ceil(1.5); // 2 echo ceil(1.6); // 2

Источник

Читайте также:  Классы потоков данных java
Оцените статью