Foros del Web » Programando para Internet » PHP »

Redondear un numero a dos decimales

Estas en el tema de Redondear un numero a dos decimales en el foro de PHP en Foros del Web. Hola no se como puedo redondear un numero a dos decimales. Yo conozco la funcion round() pero este lo redondea a entero. Un saludo....
  #1 (permalink)  
Antiguo 02/02/2005, 15:56
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Redondear un numero a dos decimales

Hola no se como puedo redondear un numero a dos decimales.

Yo conozco la funcion round() pero este lo redondea a entero.
Un saludo.
  #2 (permalink)  
Antiguo 02/02/2005, 17:57
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 12 años, 10 meses
Puntos: 1
Exclamación

Hola, probá con esta opción, a mí me funciona perfecto ...

printf ("%.2f", $result);

Usás el printf en lugar del echo donde $result es el resultado de la operación y el %.2f te da la cantidad de decimales que querés mostrar.
  #3 (permalink)  
Antiguo 02/02/2005, 21:09
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 14 años, 10 meses
Puntos: 10
round() es la funcion correcta... para que te redonde decimales tenes que decirle cuantos decimales queres mostrar

ej:
Código PHP:
round(10.212313510321231231,2)   // --> te redondea a 2 decimales, o sea 10.21 
__________________
oohh... quisiera ser godines!!!
  #4 (permalink)  
Antiguo 02/02/2005, 22:58
 
Fecha de Ingreso: febrero-2004
Mensajes: 221
Antigüedad: 13 años, 10 meses
Puntos: 0
safe Favor de decir por que printf no es correcta
  #5 (permalink)  
Antiguo 03/02/2005, 01:54
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,
Cita:
Iniciado por Appletalk
safe Favor de decir por que printf no es correcta
Bueno, no creo que haya dicho que printf sea incorrecta, solo que round() es la mas correcta, ya que ese es su trabajo especifico (aparte que en lugar de printf seria sprintf si lo que quieres es almacenar el resultado, no imprimirlo). Seguro que round al ser mas especifica esta mas optimizada para este trabajo que printf, que tiene tareas mas generales (formatear una cadena). Es como el caso str_replace y ereg_replace, si no necesitas expresiones regulares, siempre sera mejor usar str_replace.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 03/02/2005, 05:30
Avatar de jpvilar  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires - Argentina
Mensajes: 128
Antigüedad: 12 años, 10 meses
Puntos: 1
Realmente muy bueno el foro, hasta cuando uno dice algo termina aprendiendo ... no había usado round(), gracias de mi parte.
Saludos
JuanP
  #7 (permalink)  
Antiguo 03/02/2005, 07:28
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Gracias, ya lo estube mierando en el manual en ingles de php y biene el round bien explicado. Un saludo y gracias.
  #8 (permalink)  
Antiguo 08/09/2015, 17:00
 
Fecha de Ingreso: septiembre-2015
Ubicación: Porlamar
Mensajes: 3
Antigüedad: 2 años, 3 meses
Puntos: 0
Respuesta: Redondear un numero a dos decimales

Hola buenas tardes, me estoy iniciando en la programación y requiero del apoyo de los conocedores.

Tengo una tabla y quisiera hacer dos cosas:
  1. Sacar el promedio de Cada Mes, es decir promediar las columnas.
  2. Redondear el resultado a un numero entero

Envío codigo para ver si me pueden ayudar:

<?php require_once('../Connections/local.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_cant_cursos_andes = 10;
$pageNum_cant_cursos_andes = 0;
if (isset($_GET['pageNum_cant_cursos_andes'])) {
$pageNum_cant_cursos_andes = $_GET['pageNum_cant_cursos_andes'];
}
$startRow_cant_cursos_andes = $pageNum_cant_cursos_andes * $maxRows_cant_cursos_andes;

mysql_select_db($database_local, $local);
$query_cant_cursos_andes = "SELECT * FROM `cantidad de cursos region andes`";
$query_limit_cant_cursos_andes = sprintf("%s LIMIT %d, %d", $query_cant_cursos_andes, $startRow_cant_cursos_andes, $maxRows_cant_cursos_andes);
$cant_cursos_andes = mysql_query($query_limit_cant_cursos_andes, $local) or die(mysql_error());
$row_cant_cursos_andes = mysql_fetch_assoc($cant_cursos_andes);

if (isset($_GET['totalRows_cant_cursos_andes'])) {
$totalRows_cant_cursos_andes = $_GET['totalRows_cant_cursos_andes'];
} else {
$all_cant_cursos_andes = mysql_query($query_cant_cursos_andes);
$totalRows_cant_cursos_andes = mysql_num_rows($all_cant_cursos_andes);
}
$totalPages_cant_cursos_andes = ceil($totalRows_cant_cursos_andes/$maxRows_cant_cursos_andes)-1;

$queryString_cant_cursos_andes = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_cant_cursos_andes") == false &&
stristr($param, "totalRows_cant_cursos_andes") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_cant_cursos_andes = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_cant_cursos_andes = sprintf("&totalRows_cant_cursos_andes=%d%s", $totalRows_cant_cursos_andes, $queryString_cant_cursos_andes);

session_start();
require("conexion.php");
$usu=$_SESSION['usuario'];
$consulta11=mysql_query("SELECT * FROM usuario where usuario='$usu' ") or die(mysql_error());
$pacientes=mysql_fetch_array($consulta11);
$usu=$pacientes['nombre']." ".$pacientes['apellido'];
?>


<!-- -------------------------------Parametros del fondo----------------------------------------- -->
<body>



<?php do { ?>
<tr>
<td bgcolor="#E0E0E0"><strong><?php echo $row_cant_cursos_andes['Region']; ?>&nbsp; </a></strong></td>
<td><?php echo $row_cant_cursos_andes['year']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Enero']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Febrero']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Marzo']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Abril']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Mayo']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Junio']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Julio']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Agosto']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Septiembre']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Octubre']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Noviembre']; ?>&nbsp; </td>
<td><?php echo $row_cant_cursos_andes['Diciembre']; ?>&nbsp; </td>
<td><strong> <?php echo $suma=$row_cant_cursos_andes['Enero']+ $row_cant_cursos_andes['Febrero']+ $row_cant_cursos_andes['Marzo']+ $row_cant_cursos_andes['Abril']+ $row_cant_cursos_andes['Mayo']+ $row_cant_cursos_andes['Junio']+ $row_cant_cursos_andes['Julio']+ $row_cant_cursos_andes['Agosto']+ $row_cant_cursos_andes['Septiembre']+ $row_cant_cursos_andes['Octubre']+ $row_cant_cursos_andes['Noviembre']+ $row_cant_cursos_andes['Diciembre'] ?>&nbsp; </strong></td>
</tr>


<?php } while ($row_cant_cursos_andes = mysql_fetch_assoc($cant_cursos_andes)); ?>

</table>


<br>
<table border="0">
<tr>
<td><?php if ($pageNum_cant_cursos_andes > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_cant_cursos_andes=%d%s", $currentPage, 0, $queryString_cant_cursos_andes); ?>">First</a>
<?php } // Show if not first page ?></td>
<td><?php if ($pageNum_cant_cursos_andes > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_cant_cursos_andes=%d%s", $currentPage, max(0, $pageNum_cant_cursos_andes - 1), $queryString_cant_cursos_andes); ?>">Previous</a>
<?php } // Show if not first page ?></td>
<td><?php if ($pageNum_cant_cursos_andes < $totalPages_cant_cursos_andes) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_cant_cursos_andes=%d%s", $currentPage, min($totalPages_cant_cursos_andes, $pageNum_cant_cursos_andes + 1), $queryString_cant_cursos_andes); ?>">Next</a>
<?php } // Show if not last page ?></td>
<td><?php if ($pageNum_cant_cursos_andes < $totalPages_cant_cursos_andes) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_cant_cursos_andes=%d%s", $currentPage, $totalPages_cant_cursos_andes, $queryString_cant_cursos_andes); ?>">Last</a>
<?php } // Show if not last page ?></td>
</tr>
</table>


Mostrando: <?php echo ($startRow_cant_cursos_andes + 1) ?> a <?php echo min($startRow_cant_cursos_andes + $maxRows_cant_cursos_andes, $totalRows_cant_cursos_andes) ?> años de: <?php echo $totalRows_cant_cursos_andes ?> años



<p align="center">Gerencia de Capacitación ®</p>

</body>
</html>
<?php
mysql_free_result($cant_cursos_andes);
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:34.