|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Número de decimales al calcular variable
Parece que tasker, cuando establecemos una variable mediante un cálculo, no permite que tenga más de tres decimales. Por ejemplo, dividir 3.141592 entre uno da 3.142 ¿ Hay alguna forma de cambiar esto?
__________________
|
|
#2
|
||||
|
||||
Yo lo arreglo multiplicando primero.
3.141592x1000=3141.592 Luego haces los cálculos que quieras y finalmente la divides entre mil. Si quisieras más precisión, por diez mil, cien mil, etc... |
Gracias de parte de: | ||
#3
|
||||
|
||||
Es que yo quiero tener cuatro decimales en el número de mi variable, no es para hacer cálculos, son coordenadas dd.dddd°
Me puedo apañar con tres, aunque pierdo algo de precisión, pero ya be surgió la duda de por qué eso es así
__________________
Última edición por z3us Día 03/12/14 a las 20:22:18. |
#4
|
||||
|
||||
Supongo que lo que tienes a la izquierda del punto son grados, y lo que tienes a la derecha son 4 decimales de grado (décimas de grado, centésimas de grado, milésimas de grado, y diezmilésimas de grado). Por lo tanto no veo inconveniente alguno en aplicar la estrategia que te ha recomendado Iveumaos, a mí me parece la solución perfecta. Por ejemplo, si has visto que Tasker trabaja con 3 decimales y tú prefieres cuatro, puedes multiplicar primero por 10 y luego haces los cálculos.
[Editado: el siguiente párrafo es erróneo, está corregido en otro mensaje posterior] Por otro lado, ¿sabes cuánta precisión estás perdiendo al despreciar el cuarto decimal? El tercer decimal (milésima de grado) equivale aproximadamente a un metro. El cuarto decimal equivale aprox a 10 centímetros. Me sorprendería que estuvieras manejando un problema real en el que la precisión de UN METRO no fura suficiente. Y supongo que la medición original (en grados) la obtienes del sistema GPS, que suele tener un margen de error muy superior a un metro. Por lo tanto, creo que no tiene mucho sentido que tus cálculos se esfuercen en conservar el cuarto decimal, que tiene una magnitud menor.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 04/12/14 a las 03:33:40. |
#5
|
||||
|
||||
No entiendo muy bien cómo hacer lo que decís. A ver, supongamos que tienes la variable %prueba , con el valor 12345 ¿Cómo haces para procesar esa variable para mostrar 1.2345 en una alerta Flash?
Sobre la precisión, según veo en el oruxmaps, el error máximo por redondeo del cuarto decimal (cinco diezmilesimas) equivale a cuarenta metros. Repito, no es algo que me importe para la tarea chorra que estoy creando, pero ya que me he encontrado con esto, sí me interesa saber cómo lidiar con ello para cuando realmente sí precise de ese cuarto decimal. Gracias a ambos
__________________
|
#6
|
||||
|
||||
He probado la tarea siguiente, creo que funciona bien y saca tres flashes. El primer flash muestra la parte entera, el segundo flash muestra la parte decimal y el tercer flash muestra todo el conjunto: la parte entera, el punto y la parte decimal. -Establecer variable %prueba a 12345 -Establecer variable %entero a floor(%prueba/10000) -Flash %entero -Separar variable %prueba separador %entero -Flash %prueba2 -Flash %entero.%prueba2 El último Flash muestra "1.2345" como pedías. He comprobado que también funciona con otros valores como 345678, resultando 34.5678 , etc. Ahora empiezo a pensar lo contrario, que cuarenta o cincuenta metros son demasiada imprecisión. Pero claro, todo depende de lo que vayas a hacer con eso. Ya nos contarás con detalle en qué estás enredando. Pica la curiosidad.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 04/12/14 a las 03:28:50. |
![]() |
![]() |
||||||
|