Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Alarkon_88 en 3 Septiembre 2016, 00:25 AM

Título: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 00:25 AM
Hola de nuevo, tengo el siguiente codigo

$txtMonto1="";
if (!empty($_REQUEST['txtMonto1'])){
$txtMonto1=$_REQUEST['txtMonto1'];
}

$number = 400000 - $txtMonto1;


El codigo hace una resta con el numero 400.000 y otro valor que seria txtMonto1 la resta la hace bien pero el problema es que no logro colocar los puntos por ejemplo en ves de 400.000,00 sale solo 400000 he intentado de muchas formas no se que estoy haciendo mal..

gracias

PD: La idea es que muestre el resultado de la resta con sus decimales por ejemplo la resta entre 400000 y 250000 la muestre ejemplo: 150.000,00

Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 03:54 AM
si concatenas ",00"???
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 04:38 AM
Hola, muchas gracias por responder estaba esperando ayuda no entiendo lo de contatenar agradeceria la ayuda muchas gracias
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 05:00 AM
concatenar tu variable

$number.",00";

pero ahora seria de tipo string

Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 05:23 AM
Gracias por la ayuda no se que hago mal pero me tira error

$number.",00"; = 40000; - $txtMonto1;

Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 05:33 AM
creo que no me entendiste del todo

seria asi

$number= 40000 - $txtMonto1;
$number=$number.",00";
echo $number
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 05:49 AM
Ok muy bien me quedo asi: 40000,00 y ahora como hago la separacion en el mil para que quedase de esta formal 40.000,00  muchisimas gracias!!  ;-)
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 05:57 AM
tienes que recorrer por la variable string $number y poner puntos por cada tres numero, iniciando de la derecha a izquierda, cada vez concatenando

Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 06:02 AM
Aun no lo logro hacer, estaba leyendo por ahi y encontre este codigo :

$numero = 15200.67;
number_format($numero,2);
//devuelve 15,201.67


intente usarlo pero no me sirve o es que no lo se meter, me pasarias el codigo correcto? gracias , con lo de concatenar estoy intentando editando el texto pero aun no lo logro.


PD: Lo que quiero es que como es una resta  por ejemplo si coloco en el $txtMonto desde una caja de texto externe por ejemplo:  250.555,05  se reste con el valor de 400000 y me arroje   149.444,95
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 06:20 AM
lo haria asi
$copia=strrev($numero);
$resultado;
for ($i = 0; $i <strlen($copia); $i++) {
$resultado=$resultado.$copia[i];   
if(i%3==0){
      $resultado=$resultado.".";
    }
}



no se si estara bien, porque no hice la prueba, pero la idea es esa  :laugh: :laugh: :laugh:
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 06:23 AM
Disculpa mi ignorancia amigo, pero no se que hacer con ese codigo que me pasaste
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 06:31 AM
quedaria asi masomenos hace la prueba y corrigelo


Código (php) [Seleccionar]
if (!empty($_REQUEST['txtMonto1'])){
$txtMonto1=$_REQUEST['txtMonto1'];
$numero= 40000 - $txtMonto1;

$copia=strrev($numero);
$resultado;
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[i];    
if(i%3==0){
     $resultado=$resultado.".";
   }
}

$resultado=$resultado.",00";
echo $resultado;

}
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 06:40 AM
Me sigue saliendo igual en el resultado , 40000 sin los puntos  T_T
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 06:43 AM
lo corregi el for, talves ahora si funcione?
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 06:47 AM
Aun nada mi querido amigo, aqui esta el codigo completo para que lo revises


<?php
$txtMonto1
=""
if (!empty(
$_REQUEST['txtMonto1'])){ 
$txtMonto1=$_REQUEST['txtMonto1']; 


$txtDescripcion1=""
if (!empty(
$_REQUEST['txtDescripcion1'])){ 
$txtDescripcion1=$_REQUEST['txtDescripcion1']; 



if (!empty(
$_REQUEST['txtMonto1'])){ 
$txtMonto1=$_REQUEST['txtMonto1']; 
$numero40000 $txtMonto1;
 
$copia=strrev($numero);
$resultado;
for (
$i 1$i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[i];    
if(
i%3==0){
      
$resultado=$resultado.".";
    }
}
 
$resultado=$resultado.",00";
echo 
$resultado;
 







$ip $_SERVER["REMOTE_ADDR"];

setlocale(LC_TIME'spanish');
  
date_default_timezone_set("America/Caracas");

$hora strftime("   %A %#d de %B del %Y");

  
//Luego sobrescribo el txt 
  
$archivo="./editar/nombre.txt"
  
     
$file=fopen($archivo,"a"); 
     
fwrite($file,"".PHP_EOL.PHP_EOL.  "var texto16=  \"$txtMonto1\""  .PHP_EOL"var texto17=  \"$txtDescripcion1\"" .PHP_EOL"var texto18=  \"$hora\"" .PHP_EOL .PHP_EOL"var texto21=  \"$numero\"" .PHP_EOL .PHP_EOLPHP_EOL.PHP_EOL.PHP_EOL);
     
fclose($file);  
header("Location: afilia6.html");
?>
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 06:52 AM
proba con esto

$numero= 40000 ;

$copia=strrev($numero);
$resultado="";
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];   
if($i%3==0){
      $resultado=$resultado.".";
    }
}
$resultado=strrev($resultado);
$resultado=$resultado.",00";
echo $resultado;



faltaban muchos $

saludos...
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 06:55 AM
Amigo ya sale con los decimales pero no hace la resta!!! yo creo que ya casi  :-X


<?php
$txtMonto1
=""
if (!empty(
$_REQUEST['txtMonto1'])){ 
$txtMonto1=$_REQUEST['txtMonto1']; 


$txtDescripcion1=""
if (!empty(
$_REQUEST['txtDescripcion1'])){ 
$txtDescripcion1=$_REQUEST['txtDescripcion1']; 



$numero40000 ;
 
$copia=strrev($numero);
$resultado="";
for (
$i 1$i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];    
if(
$i%3==0){
      
$resultado=$resultado.".";
    }
}
$resultado=strrev($resultado); 
$resultado=$resultado.",00";
echo 
$resultado;






$ip $_SERVER["REMOTE_ADDR"];

setlocale(LC_TIME'spanish');
  
date_default_timezone_set("America/Caracas");

$hora strftime("   %A %#d de %B del %Y");

  
//Luego sobrescribo el txt 
  
$archivo="./editar/nombre.txt"
  
     
$file=fopen($archivo,"a"); 
     
fwrite($file,"".PHP_EOL.PHP_EOL.  "var texto16=  \"$txtMonto1\""  .PHP_EOL"var texto17=  \"$txtDescripcion1\"" .PHP_EOL"var texto18=  \"$hora\"" .PHP_EOL .PHP_EOL"var texto21=  \"$resultado\"" .PHP_EOL .PHP_EOLPHP_EOL.PHP_EOL.PHP_EOL);
     
fclose($file);  
header("Location: afilia6.html");
?>


Sera que hay algo mal?
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 07:01 AM
<?php
$txtMonto1
=""
if (!empty(
$_REQUEST['txtMonto1'])){ 
$txtMonto1=$_REQUEST['txtMonto1']; 
$numero40000 $txtMonto1;
 
$copia=strrev($numero);
$resultado="";
for (
$i 1$i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];    
if(
$i%3==0){
      
$resultado=$resultado.".";
    }
}
$resultado=strrev($resultado); 
$resultado=$resultado.",00";
echo 
$resultado;


$txtDescripcion1=""
if (!empty(
$_REQUEST['txtDescripcion1'])){ 
$txtDescripcion1=$_REQUEST['txtDescripcion1']; 



supongo que quieres restar 4000 menos tu numero, talves o no se




Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 07:07 AM
Oye muchas gracias, pero creo que me faltaria un ultimo detalle

el valor es 40000 (cuarenta mil) y me aparece 4.000,00  (cuatro mil)  y al 4000 le resto 1000 y me arroja 3.900,00
Título: Re: Problema con puntos en decimales y miles
Publicado por: EFEX en 3 Septiembre 2016, 07:17 AM
Código (php) [Seleccionar]

$num = 4000;
$num2 = 1000;

echo number_format(($num - $num2), 2, ',', '.');  //3.000,00
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 07:17 AM
Código (php) [Seleccionar]
corrige esta parte
[code]$resultado="";
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];  
[/code]

por

Código (php) [Seleccionar]
$resultado=$copia[0];
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];  
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 07:19 AM
Cita de: EFEX en  3 Septiembre 2016, 07:17 AM
Código (php) [Seleccionar]

$num = 4000;
$num2 = 1000;

echo number_format(($num - $num2), 2, ',', '.');  //3.000,00


ahi se nota que no domino aun la programacion, esa es una mejor respuesta 100%

saludos
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 07:23 AM
Amigo ya casi que esta listo, muy bien!!  ;-) 

Solo que como no entiendo el codigo no lo puedo editar! pero ya el resultado esta bien solo que el punto esta mal porque si hay 40000 (cuarenta mil) y le resto 20000 (veinte mil) me arroja 2.0000,00 cuando deberia ser 20.000,00  muchas graciaas
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 08:10 AM
intenta solucionarlo, porfavor
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 08:13 AM
Estoy intentandolo pero solo errores u.u
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 08:22 AM
No entiendo esto, no se cuales son los puntos , mas que todo html se un poco pero en esto pido tu ayuda porfavor

$copia=strrev($numero);
$resultado=$copia[0];
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];   
if($i%3==0){
      $resultado=$resultado.".";
    }
}
$resultado=strrev($resultado);
$resultado=$resultado.",00";
echo $resultado;
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 08:30 AM
Código (php) [Seleccionar]
<?php
$txtMonto1
=""
if (!empty(
$_REQUEST['txtMonto1'])){ 
$txtMonto1=$_REQUEST['txtMonto1']; 
$numero40000 $txtMonto1;
 
echo 
number_format(($numero), 2',''.');

$txtDescripcion1=""
if (!empty(
$_REQUEST['txtDescripcion1'])){ 
$txtDescripcion1=$_REQUEST['txtDescripcion1']; 
}


proba con eso
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 08:34 AM
Ya lo acabo de probar y No me sirvio, pero ya tu codigo me estaba sirviendo solo falta la poscision del punto en ves de 4.0000,00 sea 40.000,00 
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 08:40 AM
copia este codigo
$numero=40000;
echo number_format(($numero), 2, ',', '.');


y probalo en

http://phptester.net/

y funciona a la perfeccion.
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 08:45 AM
Si ya lo probe en esa web y funciona, pero en mi codigo no funciona lo intente de varias formas y nada ..


<?php
$txtMonto1
=""
if (!empty(
$_REQUEST['txtMonto1'])){ 
$txtMonto1=$_REQUEST['txtMonto1']; 
$numero400000 $txtMonto1;
echo 
number_format(($numero), 2',''.');



$txtDescripcion1=""
if (!empty(
$_REQUEST['txtDescripcion1'])){ 
$txtDescripcion1=$_REQUEST['txtDescripcion1']; 







$ip $_SERVER["REMOTE_ADDR"];

setlocale(LC_TIME'spanish');
  
date_default_timezone_set("America/Caracas");

$hora strftime("   %A %#d de %B del %Y");

  
//Luego sobrescribo el txt 
  
$archivo="./editar/nombre.txt"
  
     
$file=fopen($archivo,"a"); 
     
fwrite($file,"".PHP_EOL.PHP_EOL.  "var texto16=  \"$txtMonto1\""  .PHP_EOL"var texto17=  \"$txtDescripcion1\"" .PHP_EOL"var texto18=  \"$hora\"" .PHP_EOL .PHP_EOL"var texto21=  \"$numero\"" .PHP_EOL .PHP_EOLPHP_EOL.PHP_EOL.PHP_EOL);
     
fclose($file);  
header("Location: afilia6.html");
?>
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 08:53 AM
que error te sale?
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 08:58 AM
No sale ningun error, solo que en el resultado sale el numero solo osea : 40000  he intentado con ese codigo mucho y sin obtener ningun resultado , el otro codigo que me estabas pasando ya esta casi listo pero no se como arreglarlo.

gracias.
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 3 Septiembre 2016, 09:10 AM
$copia=strrev($numero);
$resultado=$copia[0];
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];   
if(($i+1)%3==0){
      $resultado=$resultado.".";
    }
}
$resultado=strrev($resultado);
$resultado=$resultado.",00";
echo $resultado;

ultimo intento, tengo que dormir

saludos...
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 3 Septiembre 2016, 09:13 AM
Jajaja, hey hermano te agradezco el mundo!! jajaja

solo que en el resultado aparece un . adelante asi: .40.000,00  como lo quito.


gracias!!!!!!!
Título: Re: Problema con puntos en decimales y miles
Publicado por: EFEX en 3 Septiembre 2016, 09:14 AM
Fijate en fwrite.. te olvidaste de concatenar las variables.

Podes agregar esto al principio para que muestre los errores

Código (php) [Seleccionar]
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(E_ALL);


Sino ver los logs de error del servidor o modificar php.ini, modificar..

Citardisplay_errors = on
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 11 Septiembre 2016, 07:38 AM
puedes cambiar

if(($i+1)%3==0){ por esto:
if(($i+1)%3==0 && $i!=strlen($copia)){
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 11 Septiembre 2016, 17:29 PM
Hola, gracias por la ayuda, pero aun sigue el punto antes de el monto, sale asi : .400.000,00   >:( >:(
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 11 Septiembre 2016, 21:01 PM
funciona

$copia=strrev(40000);
$resultado=$copia[0];
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];   
if(($i+1)%3==0 && $i!=strlen($copia)){
      $resultado=$resultado.".";
    }
}
$resultado=strrev($resultado);
$resultado=$resultado.",00";
echo $resultado;


proba en http://phptester.net/
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 11 Septiembre 2016, 22:12 PM
Prueba en PHPTESTER con este amigo:

Código (php) [Seleccionar]

<?php$copia=strrev(400000);
$resultado=$copia[0];
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];    
if(($i+1)%3==0 && $i!=strlen($copia)){
      $resultado=$resultado.".";
    }
}
$resultado=strrev($resultado); 
$resultado=$resultado.",00";
echo $resultado;
Título: Re: Problema con puntos en decimales y miles
Publicado por: .rn3w. en 12 Septiembre 2016, 00:57 AM
ahora si asunto resuelto , bueno eso espero.

Código (php) [Seleccionar]

$copia=strrev(40000000);
$resultado=$copia[0];
for ($i = 1; $i <=strlen($copia); $i++) {
$resultado=$resultado.$copia[$i];   
if(($i+1)%3==0 && $i<strlen($copia)-1){
      $resultado=$resultado.".";
    }
}
$resultado=strrev($resultado);
$resultado=$resultado.",00";
echo $resultado;
Título: Re: Problema con puntos en decimales y miles
Publicado por: Alarkon_88 en 15 Septiembre 2016, 04:10 AM
Muchas gracias, problema resuelto vale.  ;D