Foro de elhacker.net

Programación => 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

Código:
$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: bengy 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: bengy 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

Código:
$number.",00"; = 40000; - $txtMonto1;



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

seria asi

Código:
$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: bengy 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 :

Código:
$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: bengy en 3 Septiembre 2016, 06:20 am
lo haria asi
Código:
$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: bengy en 3 Septiembre 2016, 06:31 am
quedaria asi masomenos hace la prueba y corrigelo


Código
  1. if (!empty($_REQUEST['txtMonto1'])){
  2. $txtMonto1=$_REQUEST['txtMonto1'];
  3. $numero= 40000 - $txtMonto1;
  4.  
  5. $copia=strrev($numero);
  6. $resultado;
  7. for ($i = 1; $i <=strlen($copia); $i++) {
  8. $resultado=$resultado.$copia[i];    
  9. if(i%3==0){
  10.      $resultado=$resultado.".";
  11.    }
  12. }
  13.  
  14. $resultado=$resultado.",00";
  15. echo $resultado;
  16.  
  17. }


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: bengy 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

Código:
<?php
$txtMonto1="";
if (!empty($_REQUEST['txtMonto1'])){
$txtMonto1=$_REQUEST['txtMonto1'];
}

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


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;
 
}






$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_EOL. PHP_EOL.PHP_EOL.PHP_EOL);
     fclose($file); 
header("Location: afilia6.html");
?>


Título: Re: Problema con puntos en decimales y miles
Publicado por: bengy en 3 Septiembre 2016, 06:52 am
proba con esto

Código:
$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

Código:
<?php
$txtMonto1="";
if (!empty($_REQUEST['txtMonto1'])){
$txtMonto1=$_REQUEST['txtMonto1'];
}

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


$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;






$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_EOL. PHP_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: bengy en 3 Septiembre 2016, 07:01 am
Código:
<?php
$txtMonto1="";
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=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
  1. $num = 4000;
  2. $num2 = 1000;
  3.  
  4. echo number_format(($num - $num2), 2, ',', '.');  //3.000,00


Título: Re: Problema con puntos en decimales y miles
Publicado por: bengy en 3 Septiembre 2016, 07:17 am
Código
  1. corrige esta parte
  2. [code]$resultado="";
  3. for ($i = 1; $i <=strlen($copia); $i++) {
  4. $resultado=$resultado.$copia[$i];  
[/code]

por

Código
  1. $resultado=$copia[0];
  2. for ($i = 1; $i <=strlen($copia); $i++) {
  3. $resultado=$resultado.$copia[$i];  


Título: Re: Problema con puntos en decimales y miles
Publicado por: bengy en 3 Septiembre 2016, 07:19 am
Código
  1. $num = 4000;
  2. $num2 = 1000;
  3.  
  4. 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: bengy 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

Código:
$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: bengy en 3 Septiembre 2016, 08:30 am
Código
  1. <?php
  2. $txtMonto1="";
  3. if (!empty($_REQUEST['txtMonto1'])){
  4. $txtMonto1=$_REQUEST['txtMonto1'];
  5. $numero= 40000 - $txtMonto1;
  6.  
  7. echo number_format(($numero), 2, ',', '.');
  8.  
  9. $txtDescripcion1="";
  10. if (!empty($_REQUEST['txtDescripcion1'])){
  11. $txtDescripcion1=$_REQUEST['txtDescripcion1'];
  12. }

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: bengy en 3 Septiembre 2016, 08:40 am
copia este codigo
Código:
$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 ..

Código:
<?php
$txtMonto1="";
if (!empty($_REQUEST['txtMonto1'])){
$txtMonto1=$_REQUEST['txtMonto1'];
$numero= 400000 - $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_EOL. PHP_EOL.PHP_EOL.PHP_EOL);
     fclose($file); 
header("Location: afilia6.html");
?>


Título: Re: Problema con puntos en decimales y miles
Publicado por: bengy 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: bengy en 3 Septiembre 2016, 09:10 am
Código:
$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
  1. ini_set('display_startup_errors', 1);
  2. ini_set('display_errors', 1);

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

Citar
display_errors = on


Título: Re: Problema con puntos en decimales y miles
Publicado por: bengy en 11 Septiembre 2016, 07:38 am
puedes cambiar

Código:
if(($i+1)%3==0){
por esto:
Código:
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: bengy en 11 Septiembre 2016, 21:01 pm
funciona

Código:
$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
  1. <?php$copia=strrev(400000);
  2. $resultado=$copia[0];
  3. for ($i = 1; $i <=strlen($copia); $i++) {
  4. $resultado=$resultado.$copia[$i];    
  5. if(($i+1)%3==0 && $i!=strlen($copia)){
  6.      $resultado=$resultado.".";
  7.    }
  8. }
  9. $resultado=strrev($resultado);
  10. $resultado=$resultado.",00";
  11. echo $resultado;
  12.  


Título: Re: Problema con puntos en decimales y miles
Publicado por: bengy en 12 Septiembre 2016, 00:57 am
ahora si asunto resuelto , bueno eso espero.

Código
  1. $copia=strrev(40000000);
  2. $resultado=$copia[0];
  3. for ($i = 1; $i <=strlen($copia); $i++) {
  4. $resultado=$resultado.$copia[$i];    
  5. if(($i+1)%3==0 && $i<strlen($copia)-1){
  6.      $resultado=$resultado.".";
  7.    }
  8. }
  9. $resultado=strrev($resultado);
  10. $resultado=$resultado.",00";
  11. echo $resultado;
  12.  


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