2013-04-09 2 views
0

У меня есть эта переменная $mynumber, что echos число от 1 до 100, на выходе, мне нужно, чтобы это число разделилось на 2, округлите его и поместите точку между цифрами, например:php номера форматирование

<?php echo $mynumber ?> 

//output e.g. 55 

мне нужно выводить 2.7 вместо (55/2 -> 27.5 -> 27 -> 2.7)

У меня возникли проблемы форматирования это правильный путь, вы можете мне помочь? Благодаря

+2

Покажите нам, что вы попробовали –

+0

number_format ($ your_final_number, 1); – Rooster

+0

Что делать, если число 1 или 100? –

ответ

2
<?php 
$mynumber = 55; 
echo (intval($mynumber/2))/10 . "\n"; 
?> 

Я предполагаю, что вы действительно не хотите округления, но урезание с тех пор, как вы написали, что 27.5 становится 27, а не 28.

+0

Да, урезайте третью цифру, если она есть, извините. Я делаю несколько тестов, но ваше решение, похоже, работает. Спасибо всем – djwd

+0

, если у вас есть отрицательные числа, вам нужно решить, хотите ли вы поведение intval() или floor(). – Mikkel

3

$mynumber если между 1-100 это должно работать:

<?php echo floor($mynumber/2)/10; ?> 
3

Я думаю, что это то, что вы ищете? Это приведет к округлению всех значений.

$mynumber = (floor($mynumber/2) /10);

Если вы хотите, чтобы округлить значения вверх или вниз, в зависимости от самого значения, используйте следующее:

$mynumber = (round($mynumber/2) /10);

+0

, это выводит 2.8 для 55 – razzak

+0

Используйте 'floor()' вместо 'round() ' – HamZa

+1

Я прочитал его вопрос, как он хотел обойти его, а не вокруг него, но я вижу в его примере, он хотел спуститься на .5! – sark9012

1
<?php 
    $number = 55; 

    $mynumber = floor($number/2); 
    $chars = strlen($mynumber); 
    $pos = substr($mynumber, $chars-1); 
    $pos2 = substr($mynumber, $pos)+1; 
    $newNumber = (float)(str_replace($pos, '.', $mynumber).substr($mynumber, $pos2)); 
    echo $newNumber; 
?> 
Смежные вопросы