Página 1 de 2
imput mask
Publicado: 12 Abr 2020 00:37
por valetodo78
Hola como estan, despues de mucho tiempo retornando a trabajar con el autoplay... y ya tengo una pregunta, que imput mask debo poner para que me marque un imput correctamente los decimales, sino le pongo ningun imput me marca un numero asi de largo $ 1.0828567056281, lo estoy trabajando como si fuera dolar, pero quisiera que solo figure $ 1.08 y si le pongo un imput mask como este #,### me sale bien pero cuando llega a 10 ahi se queda... muchas gracias
Re: imput mask
Publicado: 12 Abr 2020 01:22
por Agotaras123
Para redondear tus valores y decirle cuantos decimales deben de tener podes usar la función
Math.Round
Ejemplo de uso:
Valor = "2580.44563"
Math.Round(String.ToNumber(Valor), 2)
Esta funcion
Math.Round te dice que redondeara a 2 los decimales del valor almacenado en la variable
valor
Esta función
String.ToNumber convertirá a valor numérico el contenido de la variables
valor
el numero
2 es la cantidad de decimales que mostrara
ahora si quieres que tus valores se conviertan en valores moneda puedes usar un
plugin currency o una función puro código
te comparto una que yo utilizo es muy buena
en global function colocas esta
function comma_value(n)
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end
y la usas de esta manera
Valor = "2580.44563"
Input.SetText("Input1", comma_value(Valor));
y para que ese valor solo tenga 2 decimales podemos combinar la función anterior con esta te pongo el ejemplo:
Valor = Math.Round(String.ToNumber("2580.44563"), 2)
Input.SetText("Input1", comma_value(Valor));
bueno espero te sirva lo que te comparto.
Re: imput mask
Publicado: 12 Abr 2020 02:07
por valetodo78
muchas gracias por tu respuesta, lo que pasa que yo queria usar esta formula y me daba el resultado en el imput (que me muestra mal los decimales) te voy a ser sincero no se como adaptarlo pero voy a tratar...
Código: Seleccionar todo
suma=0;
a = Input.GetText("Input1");
b = Input.GetText("Input2");
c = Input.GetText("Input3");
suma = suma+(a*b/c);
Input.SetText("Input4", suma);
y con este incrementa valor
Código: Seleccionar todo
Incrementar = tonumber(Input.GetText("Input1"));
ObtenerValor = tonumber(Input.GetText("Input4"));
Input.SetText("Input1", (ObtenerValor+Incrementar))
Re: imput mask
Publicado: 12 Abr 2020 06:37
por Agotaras123
en Global Function
function comma_value(n)
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end
en el botón que hace el calculo
a = Input.GetText("Input1");
b = Input.GetText("Input2");
c = Input.GetText("Input3");
suma = suma+(a*b)/c;
Input.SetText("Input4",Math.Round(String.ToNumber( suma), 2));
Incrementar = tonumber(Input.GetText("Input1"));
ObtenerValor = tonumber(Input.GetText("Input4"));
Input.SetText("Input1", Math.Round(comma_value((ObtenerValor+Incrementar)), 2))
Re: imput mask
Publicado: 12 Abr 2020 20:34
por valetodo78
Me anda perfecto muchas gracias, lo unico molesto es que me tira el cartel este cuando doy al previo...
Código: Seleccionar todo
function comma_value(n)
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end
a = Input.GetText("Input1");
b = Input.GetText("Input2");
c = Input.GetText("Input3");
f = a*b/c;
Input.SetText("Input4",Math.Round(String.ToNumber( f), 3));
Incrementar = tonumber(Input.GetText("Input1"));
ObtenerValor = tonumber(Input.GetText("Input4"));
Input.SetText("Input1", Math.Round(comma_value((ObtenerValor+Incrementar)), 3));
Re: imput mask
Publicado: 12 Abr 2020 22:43
por valetodo78
me he dado cuenta que cuando la cuenta llega a 1000... se resetea, porque sera?
Re: imput mask
Publicado: 13 Abr 2020 20:09
por Agotaras123
solo esto va en global function
function comma_value(n)
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end
Re: imput mask
Publicado: 13 Abr 2020 20:37
por valetodo78
gracias el error se fue, si es cierto tenia todo el codigo en global fuction...Pero cuando llega a 1000,00 se vuelve a 0.. le debe faltar un signo quizas pero no puedo darme cuenta cual es...
Re: imput mask
Publicado: 13 Abr 2020 22:38
por Agotaras123
no entiendo a que te refieres cuan llega a 1000,00 se vuelve a 0.. si te podes explicar o poner fotos para entender mejor
Nota: podria influir en algo la configuracion de moneda de tu sistema operativo verifica como esta y si la podes corregir tambien.
Re: imput mask
Publicado: 13 Abr 2020 23:09
por valetodo78

se que el problema esta con la diferencia entre comas y puntos pero no se como acodarlo
en la foto muestra como cada input me va mostrando, se que en vez de que aprezca el punto tendria que ser una coma pero no se como ponerlo, por eso preguntaba desde el principio si debia usar un imput-mask
Re: imput mask
Publicado: 14 Abr 2020 05:44
por Agotaras123
seguí las instrucciones para cambiar los puntos y comas de los valores numéricos y de moneda
pasos
- bucare cambiar fecha y hora
- Clic en la opción Fecha, hora y formato regional
- clic en la opción Opciones adicionales de fecha, hora y configuración regional
- Clic en configurar la hora y la fecha
- Clic en cambiar fecha y hora
- clic en Cambiar configuración del calendario
- clic en configuración adicional
ya llegaste a lo que importa aquí tenes que cambiar los símbolos correspondientes en la pestaña numero y moneda
- Símbolo de decimales poner (.)
- Símbolo de separación de miles poner (,)
- Separador de listas poner (;)
luego de cambiar eso solo das
y listo ya esta tu problema resuelto.
Re: imput mask
Publicado: 14 Abr 2020 07:05
por Dow Sher
function currencyFormat(text)
local amount = string.format('%.2f', text);
local amountFormatted, substitutions = amount, -1;
while substitutions ~= 0 do
amountFormatted, substitutions = string.gsub(amountFormatted, '^(-?%d+)(%d%d%d)', '%1,%2');
end
return amountFormatted;
end
local myValue = '1978437634.8977438975';
local result = currencyFormat(myValue);
-- result: '1,978,437,634.90'
Re: imput mask
Publicado: 14 Abr 2020 14:36
por valetodo78
hola chicos ante todo, muchas gracias por seguir ayudandome..
la configuracion que me decia agotaras.. siguio igual funcionando se reseteaba a 0
el codigo que subio dowsher lo pegue en global function, borrando el anterior, anda bien se ve asi
1051.0100501 ( eso seria 1051) no se si conbinar ambos codigos para que solo aparezca asi 1051.01
Re: imput mask
Publicado: 15 Abr 2020 22:10
por valetodo78
no hubo caso hice toda clase de combinaciones y no puedo hacer que aparezca 2 decimales, con lo que subio dowsher... anda muy bien pero me aparece numero largo... el 1000 meaparece asi 1000.000000000000
Re: imput mask
Publicado: 15 Abr 2020 23:48
por Agotaras123
sube el apz te lo arreglare porque explicas muy mal no se que es lo que decís con que se resetea a 0 mejor comparti el apz y te lo dejo funcionando.
Re: imput mask
Publicado: 16 Abr 2020 00:21
por valetodo78
Re: imput mask
Publicado: 16 Abr 2020 03:46
por Agotaras123
pones permisos para descargar que pasa con vos ocupas ayuda o no.
Re: imput mask
Publicado: 16 Abr 2020 03:52
por valetodo78
ahi lo subo de nuevo me debo haber equivocado a poner link
ahi esta
https://drive.google.com/file/d/1UnYEVl ... sp=sharing
Re: imput mask
Publicado: 16 Abr 2020 04:27
por Agotaras123
ya esta aquí te dejo el apz corregida
- HIDE: ON
- Hidebb Message Hidden Description
Re: imput mask
Publicado: 16 Abr 2020 05:00
por valetodo78
Mil gracias agotaras quedo espectacular como yo queria... perdon por el tiempo y las vueltas que te hice dar... agradecido saludos