6

相互運用サービスを使用して C# から Excel シートを読み込んでいます。私のシートには、セルの値が 0.00 の 1 つがあります。しかし、実行時に C# コードでそのセルの値をチェックすると、この値は "1.845E-07" になります。Excelシートでチェックインすると、そのセルを右クリックして、フォーマットセルと言って、サンプルセクションで「1.845E-07」の値を取得しました。正確な値を取得するには?私を助けてください。コードは膨大なため、ここでは提供できません。その行は次のとおりです。

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();
}

日付セル「39448」と同じ問題。これはどういう意味ですか??助けてください....

4

2 に答える 2

14

1.84E-07 は、指数表記とも呼ばれる科学表記法を使用して表される正確な値です。

1.845E-07 は 0.0000001845 と同じです。Excel では、セルの書式設定を変更して小数点以下を表示しない限り、0 に非常に近い数値が 0 として表示されます。

ただし、C# はセルから実際の値を取得します。ToString メソッドは、小さな数値を文字列に変換するときに e 表記法を使用します。

e-notation を使用したくない場合は、フォーマット文字列を指定できます。

于 2010-05-05T12:05:03.373 に答える