c# - usar - que es int en programacion
¿Qué tipo de datos debo usar para representar dinero en C#? (6)
En C #, ¿qué tipo de datos debo usar para representar cantidades monetarias? ¿Decimal? ¿Flotador? ¿Doble? Quiero tomar en consideración: precisión, redondeo, etc.
Considere usar Money Type para CLR . Es un tipo de valor personalizado (struct) que también admite monedas y maneja problemas de redondeo.
En C # Debes tomar " Decimal " para representar montos monetarios.
En C #, el tipo Decimal en realidad es una estructura con funciones sobrecargadas para todas las operaciones matemáticas y de comparación en la base 10, por lo que tendrá errores de redondeo menos significativos. Un float (y double), por otro lado, es similar a la notación científica en binario. Como resultado, los tipos de Decimal son más precisos cuando conoce la precisión que necesita.
Ejecute esto para ver la diferencia en la precisión de 2:
using System;
using System.Collections.Generic;
using System.Text;
namespace FloatVsDecimal
{
class Program
{
static void Main(string[] args)
{
Decimal _decimal = 1.0m;
float _float = 1.0f;
for (int _i = 0; _i < 5; _i++)
{
Console.WriteLine("float: {0}, decimal: {1}",
_float.ToString("e10"),
_decimal.ToString("e10"));
_decimal += 0.1m;
_float += 0.1f;
}
Console.ReadKey();
}
}
}
Use decimal y dinero en el DB si usa SQL.
System.Decimal es el que quieres.
Use System.Decimal
:
El tipo de valor decimal representa números decimales que van desde positivos 79,228,162,514,264,337,593,543,950,335 a negativos 79,228,162,514,264,337,593,543,950,335. El tipo de valor Decimal es apropiado para cálculos financieros que requieren grandes cantidades de dígitos integrales y fraccionarios significativos y sin errores de redondeo. El tipo Decimal no elimina la necesidad de redondeo. Más bien, minimiza los errores debidos al redondeo.
Ni System.Single
( float
) ni System.Double
( double
) son lo suficientemente preciso capaz de representar números de punto flotante de alta precisión sin errores de redondeo.