Gerald Ferreira
Gerald Ferreira

Reputation: 1337

Php set value as a number

How do I output a value as a number in php? I suspect I have a php value but it is outputting as text and not as a number.

Thanks

Here is the code - Updated for David from question below

<?php 
if (preg_match('/\-(\d+)\.asp$/', $pagename1, $a))
{
$pageNumber = $a[1];} 
else
{    // failed to match number from URL} 
}
 ?>

If I call it in: This code it does not seem to work.

$maxRows_rs_datareviews = 10;
$pageNum_rs_datareviews = $pagename1; <<<<<------ This is where I want to use it.
if (isset($_GET['pageNum_rs_datareviews'])) {
  $pageNum_rs_datareviews = $_GET['pageNum_rs_datareviews'];
}

If I make page name a static number like 3 the code works, if I use $pagename1 it does not, this gives me the idea $pagename1 is not seen as a number?

My stupidity!!!! - I used $pagename1 instead of pageNumber

Upvotes: 1

Views: 2965

Answers (4)

Phil
Phil

Reputation: 164767

What kind of number? An integer, decimal, float, something else?

Probably the easiest method is to use printf(), eg

printf('The number %d is an integer', $number);
printf('The number %0.2f has two decimal places', $number);

This might be blindingly obvious but it looks like you want to use

$pageNum_rs_datareviews = $pageNumber;

and not

$pageNum_rs_datareviews = $pagename1;

Upvotes: 1

Zirak
Zirak

Reputation: 39808

$num = 5;
echo $num;

Any output is text, since it's output. It doesn't matter what the type of what you're outputting is, since the human eye will see it as text. It's how you actually treat is in the code is what matters.

Converting (casting) a string to a number is different. You can do stuff like:

$num = (int) $string;
$num = intval($string);

Googling php string to number should give you a beautiful array of choices.

Edit: To scrape a number from something, you can use preg_match('/\d+/', $string, $number). $number will now contain all numbers in $string.

Upvotes: 0

Christian
Christian

Reputation: 28124

I prefer to use number_format:

echo number_format(56.30124355436,2).'%'; // 56.30%
echo number_format(56.30124355436,0).'%'; // 56%

Upvotes: 1

dogmatic69
dogmatic69

Reputation: 7575

echo (int)$number; // integer 123

echo (float)$number; // float 123.45

would be the easiest

Upvotes: 1

Related Questions