Ik lees de Excel-blad van C # met behulp van Interop Services. Mijn vel heeft een van de celwaarde als 0,00. Maar ren tijd wanneer ik de waarde van die cel in C #–code controleer, ik krijg “1.845E-07” deze waarde. Wanneer ik de Excel-vel incheck, klikte op die cel met de rechterhand, zeg op Format Cell I Kreeg “1.845E-07” -waarde in het voorbeeldgedeelte. Hoe krijg je exacte waarde?
Help me alstublieft. De code is enorm, dus ik kan het hier niet verstrekken.
Die lijn is:
if (Convert.ToString(((Excel.Range)worksheet.Cells[iRowindex, colIndex_q10]).Value2) != string.Empty)
{
drRow[dtSourceEXLData.Columns[constants.Floor]] = ((Excel.Range)worksheet.Cells[iRowindex, colIndex_q10]).Value2.ToString();
}
hetzelfde probleem met datumcellen “39448”. Wat betekent dit ?? Help alstublieft …
Antwoord 1, Autoriteit 100%
1.84E-07 is de exacte waarde, vertegenwoordigd met wetenschappelijke notatie , ook bekend als exponentieel notatie.
1.845E-07 is hetzelfde als 0.0000001845. Excel vertoont een aantal zeer dichtbij 0 als 0, tenzij u de opmaak van de cel aanpast om meer decimalen weer te geven.
C # krijgt echter de werkelijke waarde uit de cel. De ToString-methode gebruikt de e-notatie bij het converteren van kleine nummers naar een string.
U kunt een formaatstring opgeven als u de e-notatie niet wilt gebruiken.
Antwoord 2, Autoriteit 7%
Markeer de cellen, formatteercellen, selecteer Custom en selecteer vervolgens nul.