FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Obtener un número positivo o negativo.
En una tabla guardo abonos y cargos los abonos tienen que ser negativos y los cargos positivos. El objeto es que al facturar cargue o abone dichas cantidades.
El propósito es, independientemente de la buena voluntad del usuario que los bultos y unidades sean positivas o negativas dependiendo de lo explicado anteriormente.
Alguna otra idea? Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
Última edición por marcoszorrilla fecha: 09-03-2011 a las 13:28:42. |
#2
|
||||
|
||||
La solución de calcular el valor absoluto y luego multiplicar o no por -1 me parece la más cómoda. No sé si sería más eficiente comprobar los valores:
Vamos, que no sé cómo está implementado "ABS", porque si el compilador la expande como hace, por ejemplo, con INC y DEC entonces creo que da lo mismo, casi. |
#3
|
||||
|
||||
Gracias Ñuño, creo que lo dejaré tal como está. Que conste que antes de hacer cosas como está pronuncio internamente "la polvora la inventaron los chinos...".
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
||||
|
||||
Hola,
Creo que lo más adecuado es irse por el valor absoluto. Supuestamente ya está optimizada esta función y debería hacer uso de la instrucción ABS y/o FABS en assembler que justamente lo único que hacen es alterar el campo de signo. La ventaja del uso del valor absoluto es que no interesa si se ingresa positivo o negativo... siempre se obtiene el "lado positivo" y lo que nos resta por hacer es multiplicarlo por -1 en caso de ser necesario (que es más que evidente que solo aplica para cuando se requiere de los negativos) y no se necesita de hacer evaluaciones previas, como la que sugiere Nuño. Añadir un IF equivale a añadir un V(G) = 2. Dos IFs, son V(G) = 4. A mi humilde ver, me parece algo exagerado contar con una V(G) de 4 sólo para generar positivos y/o negativos. Cuanto mucho me podría preguntar si da lo mismo hacer:
Que:
Saludos, |
#5
|
||||
|
||||
También podrías evitar el condicional:
// Saludos |
#6
|
|||
|
|||
Hola,
tambien podrias asignar directamente el bit de paridad con un or (no recuerdo cual es) aunque supongo que es lo que debe hacer abs o algo bastante parecido. Saludos. |
#7
|
||||
|
||||
Yo también optaría por una solución como la de Román, dándole simetría aritmética al condicionante Boolean. Pero a esa variable le daría un significado positivo, es decir, la llamaría EsCargo (que de hecho es el sentido que adquiere el código de Román).
Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Saber Número negativo y pasarlo a positivo | BuRtOn | Varios | 3 | 19-09-2008 20:36:15 |
Obtener numero de línea de código | Walterdf | Varios | 5 | 13-06-2008 11:28:29 |
De un número, obtener el ASCII | Alexander | Varios | 2 | 26-05-2005 17:21:32 |
obtener el numero de linea. | maruenda | Varios | 1 | 30-10-2004 05:11:05 |
Obtener el número de conexiones a una BD | repo | Firebird e Interbase | 2 | 31-05-2004 18:46:00 |
|