reverse chunk split of integer in PHP [duplicate] - php

This question already has answers here:
Formatting numbers with commas PHP [duplicate]
(4 answers)
Closed 7 months ago.
I need split by gap like when we write count numbers we will give gap for every 3 integer.
echo chunk_split(1000255869,3," ");
I got output like: 100 025 586 9
But I need output like: 1,000,255,869
How to reverse that one?

Try this,
<?php
$a = 1000255869;
echo $a;//output - 1000255869
$a = number_format($a);
echo $a;//output - 1,000,255,869
?>

if you want to do a number format, you should do it with number_format.
echo number_format(1000255869,0,".",",");

This should work number_format(1000255869, 0, '.', ',');

Try this.Reference
$number= 1000255869;
echo number_format($number);

Related

How to show only two numbers after decimal using php eval() or round()? [duplicate]

This question already has answers here:
How can I format a number into a currency value without php?
(3 answers)
Closed 4 years ago.
I am calculating result of my expression using eval() function but its showing all the numbers afer decimal and I want to show only two numbers after decimal
this is my eval function with other data that I have stored.
$expression = generate_expression($num_operands,
$operations, $num_digits);
$expression_string = implode(" ", $expression);
$result = eval("return ($expression_string);");
$expressions[] = compact("expression", "result");
I am storing the expression_
for this I tried using round function also but its not showing the result that I want
here is the round function for the $result
<?php echo round($result,2); ?>
Where I went wrong?
Use: number_format()
<?php echo number_format((float)$result, 2); ?>
Example

Converting number-formatted variable back to original format - PHP [duplicate]

This question already has answers here:
How do I convert output of number_format back to numbers in PHP?
(12 answers)
Closed 1 year ago.
I used number_format in a number. I want to know how to convert number-formatted variable in php back to its original format
I first used number_format. And I want to echo back its original format removing the number format.
$number = 500000
echo number_format($number, 2);
$number = 500000;
$formattedNumber = number_format($number, 2);
$getBackOriginl = explode('.',$formattedNumber);
echo str_replace(',','',$getBackOriginl[0]);

How to get not so many digits in PHP [duplicate]

This question already has answers here:
How do I truncate a decimal in PHP?
(6 answers)
Closed 10 months ago.
<?php echo (($priceInt[0]-$specialInt[0])/$priceInt[0])*100 ?>
For every price this gives me something like 11,111111111 or 3,3433333333
How can i limit it so i will get only 11 or 3 ? Without anything after " , ".
Take a look at http://php.net/manual/fr/function.number-format.php
Use it like this :
echo number_format((($priceInt[0]-$specialInt[0])/$priceInt[0])*100, 0, '', '');
If you just need the integer part just use :
echo intval((($priceInt[0]-$specialInt[0])/$priceInt[0])*100);
You can use sprintf() like below:
echo sprintf("%d",'3,3433333333'); //output : 3
or
echo sprintf("%d",'11,111111111'); //output : 11
In your case:
echo sprintf("%d",((($priceInt[0]-$specialInt[0])/$priceInt[0])*100));
Thanks a lot guys i fixed it
echo sprintf("%d",((($priceInt-$specialInt)/$priceInt)*100));

Need one digit after decimal without changing any number [duplicate]

This question already has answers here:
Delete digits after two decimal points, without rounding the value
(15 answers)
Closed 8 years ago.
I have a value 3.9609053497942. I need value 3.9 means only one value after decimal. I have used PHP number_format and round functions but it is giving me answer 4.
You could multiply the number by 10, floor() it, and then divide it back.
echo floor($value * 10) / 10;
Try with this,
echo intval((3.9609053497942*10))/10;
or
echo floor((3.9609053497942*10))/10;
There is so many possible solutions:
echo bcadd(3.9609053497942, 0, 1);
preg_match('/\d*\.\d/', 3.9609053497942, $matches);
echo $matches[0];
why not treat it as a string, like
$x = (string)3.96;
$y = explode(".",$x);
$result = $y[0] . "." . $y[1];
Did you tried like:
number_format(3.9609053497942, 1);

How to print rounded percent [duplicate]

This question already has answers here:
Print numeric values to two decimal places
(6 answers)
Closed 11 months ago.
hello i'm trying to find %. first i found the seconds
$tm=sum_the_time($d_duration);
$d_seconds='0';
list($hour,$minute,$second) = explode(':', $tm);
$d_seconds += $hour*3600;
$d_seconds += $minute*60;
$d_seconds += $second;
$total_second=$c_seconds+$p_seconds+$t_seconds+$b_seconds+$d_seconds;
$c_seconds=$c_seconds*100/$total_second;
$p_seconds=$p_seconds*100/$total_second;
$t_seconds=$t_seconds*100/$total_second;
$b_seconds=$b_seconds*100/$total_second;
$d_seconds=$d_seconds*100/$total_second;
echo $c_seconds;
the result is 10.754504504505, how would I print this code like 10.7
You can try using printf() function:
printf("%.1f", $c_seconds);
Or, number_format():
echo number_format( $c_seconds, 1 );
These two functions will round your number (will return 10.8 in your example), so, if you want to just truncate to the first decimal place (result to be equal to 10.7), you can use the following:
echo substr($c_seconds, 0, strpos($c_seconds, ".") + 2);
Actually, you can use the solutions from this question to better use number_format() and get your desired result.
echo sprintf('%0.1f', $c_seconds);
relevant docs here: http://php.net/sprintf
http://php.net/manual/en/function.number-format.php numberformat is propably what you are looking for.

Categories