Necesito para almacenar un par de dinero relacionadas con los campos en la base de datos, pero no estoy seguro de qué tipo de datos se utiliza entre dinero y decimal.

InformationsquelleAutor ntombela | 2009-03-06

7 Comentarios

  1. 40

    Decimal y el dinero debe ser bastante fiable. Lo que os puedo asegurar (a partir de la experiencia personal dolorosa heredado de aplicaciones) es NO uso de flotador!

    • ¿Por qué no? ¿Qué problemas han tenido con el flotador?
    • La mayoría de los errores de redondeo probablemente
    • Su aplicación probablemente totalizan unos 200,000 cantidades y salió corriendo de dígitos
    • Flota causa muy sutiles errores de redondeo, especialmente al hacer los cálculos con un montón de números. Para aplicaciones financieras esto hace que los números no equilibrio
    • Vale la pena nada de lo que a pesar de que su base de datos puede apoyar la precisión DECIMAL, su lenguaje de programación puede que no. Por ejemplo, PHP se utilizan float y romper todo. En esa instancia, quizás quieras utilizar ENTERO.
  2. 14

    Yo siempre uso Decimal; nunca se utiliza el DINERO antes.

    Recientemente, me encontré con un artículo sobre decimal con el dinero de tipo de datos en Sql server que usted puede encontrar interesantes:

    Dinero vs Decimal

    También parece que el dinero de tipo de datos no siempre se traduce en resultados precisos al realizar cálculos con ella : haga clic en

    Lo he hecho así en el pasado, es el uso de un campo INT, y almacenar la cantidad de centavos (céntimos de euro /dollarcent).

    • Podría por favor explicar como podemos representar 100/3, 10/3 y 1/3, etc?
  3. 11

    Supongo que se trata de precisión y escala. Si mal no recuerdo, money es 4dp. Si que está bien, money expresa su intención. Si desea más control, uso decimal con una determinada precisión y escala.

  4. 4

    Depende de tu aplicación!!!
    Yo trabajo en servicios financieros donde normalmente consideran el precio a ser significativo a 5 decimales después del punto, que, por supuesto, cuando usted compra un par de millones en 3.12345 céntimos/centavos es una cantidad significativa.
    Algunas aplicaciones de suministro de su propio tipo de sql para manejar esto.

    Por otro lado, esto podría no ser necesario.
    <Humor>
    Contratista de las tasas de siempre parecía ser redondeado a la unidad más cercana de 100€, pero en la actualidad parecen ser más cercana a la de libras 25 libras en la actual crisis de crédito.
    </Humor>

  5. 2

    No alinear tus pensamientos basada en la disponibilidad de los tipos de datos. Más bien, analizar sus necesidades y entonces ver qué tipo de datos se ajusta mejor.
    Float es en cualquier momento la peor opción teniendo en cuenta la limitación de la arquitectura en el almacenamiento de la versión binaria de números de punto flotante.
    El dinero es una unidad estándar y seguramente tendrá más soporte para el manejo de dinero y las operaciones relacionadas.
    En el caso de los decimales, vas a tener que ocuparse de todos y de todo, pero usted sabe que es sólo usted quien es el manejo de un tipo decimal, por lo tanto no sorprende que usted puede conseguir con otros dos tipos de datos.

  6. 1

    Uso decimal y el uso de decimales más de lo que usted piensa que va a necesitar para que caclulations será correcta. El dinero no alwys devolver resultados correctos en los cálculos. Bajo ninguna circunstancia el uso de float o real como estos son inexactas tipos de datos y puede causar cálculos estar equivocado (especialmente a medida que se vuelven más complejos).

  7. 1

    Algunos datos (como el dinero) donde desea que ninguna aproximación o cambios por valor de tipo float, usted debe asegurarse de que los datos nunca es «flotante», que deben ser rígidos en ambos lados del punto decimal.

    Una manera fácil de estar seguro es, a valor mediante su conversión en tipo de datos ENTERO, y estar seguro de que mientras recupero el valor, el punto decimal se coloca en la ubicación correcta.

    por ejemplo,

    1. Para ahorrar $240.10 en la base de datos.

    2. Convertir a una pura forma integral: 24010 (usted sabe que es sólo el cambio de decimal).

    3. Volver de nuevo a decimal correcto estado. Lugar decimal en 2 posiciones de derecha. $240.10

    Así, mientras que estar en databse será en un rígido entero formulario.

Dejar respuesta

Please enter your comment!
Please enter your name here