ptypeMedlem sedan juni 2002151 inlägg Hallå! Har ett fält i en MS Server 2000-databas som är specificerad som float.
Programmerar C# och bygger upp min SQL-sats enl. nedan.
insertCmd.Parameters.Add(new SqlParameter("@fltPriceAdd", SqlDbType.Float));
insertCmd.Parameters["@fltPriceAdd"].Value=price;
där price är float. Problemet är att sätter jag in t.ex. 0,35 i databasen så lagras i databasen 0,349999994039536. Motsvarande för andra siffror.
Har provat med SqlDbType.Real också men det blir samma sak.
Nån som vet hur man slipper detta?
GunnarDMedlem sedan juni 20014 290 inlägg En dator kan inte hantera decimaltal exakt.
Så du kommer alltid att få sådana fel så länge du hanterar flyttal, tyvärr.
Titta på detta lilla c program:
#include <stdio.h>
main(void) {
float i;
for(i=7.0; i<8.0; i+=.1) {
printf("%g\t%f\n", i, i);
}
}
Programmet skall skriva ut talen 7.0, 7.1 .... 7.9 (10 tal) och inte 8.0 med det gör det.
LarsGMedlem sedan dec. 200012 464 inlägg Använd typen decimal istället.
decimal(s,p) -- s totala antalet siffror
-- p antal decimaler