Sto usando il seguente codice per Bulk inserire una tabella di dati in mio tavolo SQL:precisione persa mentre record Inserimento di massa in SQL utilizzando SqlBulkCopy
// Set up the bulk copy object.
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(destinationConnection.Connection))
{
bulkCopy.DestinationTableName =
Constants.ReportDataTable;
// Write from the source to the destination.
DataTable dtBulk = GetDatatableInReportDataFormat(dt, objectName, version);
bulkCopy.WriteToServer(dtBulk);//To get the Datatable in the SQL table format
}
ho una colonna nella mia tabella SQL denominato "Valore", il suo tipo è decimale (28,5). Il mio problema è che alcuni valori con numeri decimali vengono automaticamente arrotondati, quindi sto perdendo la precisione, ad esempio un valore di 0.72768
viene salvato come 0.72767
.
Nel Datatable, la colonna "Valore" è di tipo Double.
Qualsiasi organismo ha un'idea? Grazie
Perché il tipo non è "decimale" nel DataTable? Non tutti i numeri possono essere esattamente rappresentati in virgola mobile (lo stesso vale per i decimali, ma l'arrotondamento funziona più come gli utenti si aspettano, piuttosto che i computer) –
0,72767 non ha un valore arrotondato di 0,72768. –
hai ragione, non è arrotondato, ma non è memorizzato come dovrebbe –