セルのデフォルト値を上記のセルの値に 100 を掛けた値に設定するコードがあります。
const int DUCKBILL_MULTIPLIER = 100;
. . .
cellValue = dataGridViewPlatypi.Rows[args.RowIndex - 1].Cells[0].Value;
if (Convert.ToInt32(cellValue) > 0)
{
int nextDefaultVal = Convert.ToInt32(cellValue) * DUCKBILL_MULTIPLIER;
cellValue = nextDefaultVal;
}
prevVal = cellValue == null ? string.Empty : cellValue.ToString();
. . .
dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex].Value = prevVal;
しかし、上記の値が 1000000000 (10 億) になると、次の値は 1000 億ではなく 1215752192 (1,215,752,192 または約 12 億) になります。
最大の int 値が 2,147,483,647 (約 21 億) であることは理解しています。では、なぜ次の値は 2,147,483,647 ではなく 1,215,752,192 なのですか?
ところで、これらの値はアプリが必要とするよりも大きいですが、「極端な」ケースのテストでこれを見つけました。