- Cuadernos 4D - http://www.faq-mac.com/4D -
Detectar el sistema decimal actual
Publicado por: redaccion el 4th Julio 2007 @ 11:29 en Trucos técnicos, Código Fuente, Programación 4D | No hay comentarios
En muchos países, el uso del sistema numérico (americano o europeo) es una preferencia personal y los programas deben poder afrontar ambos ajustes.
Será muy útil detectar qué sistema utiliza el usuario durante los métodos On Startup (y On Server Startup) para evitarse cualquier duda después. Existen diversas maneras de hacerlo de las que aquí incluimos dos métodos. Si conocéis otros sistemas, no dudéis en comentárnoslos.
Método 1
El primer método efectúa una pequeña prueba de conversión de alfa a numérico para detectar el sistema.
C_STRING(1;<>va_SepDecimal)
If (Num(”0.5″)<1) `= 0.5
<>va_SepDecimal:=”.”
Else
<>va_SepDecimal:=”,” `= 5
End if
Método 2
El segundo método explota la constante Pi (3,141516…) presente en el lenguaje 4D y que por tanto se puede llamar por su nombre cualquiera que sea el sistema decimal.
C_STRING(1;<>va_SepDecimal)
<>va_SepDecimal:=string(Pi)[[2]]
o bien
<>va_SepDecimal:=Substring(string(Pi);2;1)
Estas dos líneas son equivalentes y recuperan el segundo carácter de la cadena Pi
Más tarde, en el desarrollo de la base, se puede invocar la variable cuando lo necesitemos (construcción de un real a partir de un texto).
C_TEXT($IVA)
C_REAL($PrecioSinIva;$PrecioTotal)
$PrecioTotal:=255
$IVA:=”196″ `el valor es alfa porque se pueden omitir decimales de esta forma - 19,6% es el tipo del IVA en Francia
$PrecioSinIva:=$PrecioTotal/(1+Num(◊va_SepDecimal+$IVA))
Artículo impreso desde: Cuadernos 4D: http://www.faq-mac.com/4D
Enlace al artículo: http://www.faq-mac.com/4D/2007/07/04/37/
Click aquí para imprimir.