read method
Implementation
@override
CellValue read(String v) {
// check if scientific notation e.g. 1E-3
final eIdx = v.indexOf('E');
final decimalSeparatorIdx = v.indexOf('.');
if (decimalSeparatorIdx == -1 && eIdx == -1) {
return IntCellValue(int.parse(v));
}
// also read .0 (or even .00) as an int
bool noActualDecimalPlaces = true;
for (var idx = decimalSeparatorIdx + 1; idx < v.length; ++idx) {
if (v[idx] != '0') {
noActualDecimalPlaces = false;
break;
}
}
if (noActualDecimalPlaces) {
return IntCellValue(int.parse(v.substring(0, decimalSeparatorIdx)));
}
return DoubleCellValue(double.parse(v));
}