Detectar el sistema decimal actual
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
Publicado el 4 Julio, 2007 por redaccion | | Imprime este artículo$PrecioSinIva:=$PrecioTotal/(1+Num(◊va_SepDecimal+$IVA))