version bump 0.3.1: vagaries in the general format

This commit is contained in:
SheetJS 2013-12-16 19:03:07 -05:00
parent fc9835e819
commit 5a49d84ae6
5 changed files with 556 additions and 100 deletions

View File

@ -1,6 +1,6 @@
{
"name": "ssf",
"version": "0.3.0",
"version": "0.3.1",
"author": "SheetJS",
"description": "pure-JS library to format data using ECMA-376 spreadsheet Format Codes",
"keywords": [ "format", "sprintf", "spreadsheet" ],

17
ssf.js
View File

@ -90,11 +90,20 @@ var general_fmt = function(v) {
if(V >= 0.1 && V < 1) o = v.toPrecision(9);
else if(V >= 0.01 && V < 0.1) o = v.toPrecision(8);
else if(V >= 0.001 && V < 0.01) o = v.toPrecision(7);
else if(V > Math.pow(10,-9) && V < Math.pow(10,10)) {
o = v.toPrecision(10); if(o.length > 11+(v<0?1:0)) o = v.toExponential(5);
else if(V >= 0.0001 && V < 0.001) o = v.toPrecision(6);
else if(V >= Math.pow(10,10) && V < Math.pow(10,11)) o = v.toFixed(10).substr(0,12);
else if(V > Math.pow(10,-9) && V < Math.pow(10,11)) {
o = v.toFixed(12).replace(/(\.[0-9]*[1-9])0*$/,"$1").replace(/\.$/,"");
if(o.length > 11+(v<0?1:0)) o = v.toPrecision(10);
if(o.length > 11+(v<0?1:0)) o = v.toExponential(5);
}
else o = v.toPrecision(6);
return o.replace("e","E").replace(/\.0*$/,"").replace(/\.(.*[^0])0*$/,".$1").replace(/(E[+-])([0-9])$/,"$1"+"0"+"$2");
else {
o = v.toFixed(11).replace(/(\.[0-9]*[1-9])0*$/,"$1")
if(o.length > 11 + (v<0?1:0)) o = v.toPrecision(6);
}
if(v==0.000000001) console.log(v, o);
o = o.replace(/(\.[0-9]*[1-9])0+e/,"$1e").replace(/\.0*e/,"e");
return o.replace("e","E").replace(/\.0*$/,"").replace(/\.([0-9]*[^0])0*$/,".$1").replace(/(E[+-])([0-9])$/,"$1"+"0"+"$2");
}
if(typeof v === 'string') return v;
throw "unsupported value in General format: " + v;

103
ssf.md
View File

@ -143,11 +143,20 @@ For numbers, try to display up to 11 digits of the number (the original code
if(V >= 0.1 && V < 1) o = v.toPrecision(9);
else if(V >= 0.01 && V < 0.1) o = v.toPrecision(8);
else if(V >= 0.001 && V < 0.01) o = v.toPrecision(7);
else if(V > Math.pow(10,-9) && V < Math.pow(10,10)) {
o = v.toPrecision(10); if(o.length > 11+(v<0?1:0)) o = v.toExponential(5);
else if(V >= 0.0001 && V < 0.001) o = v.toPrecision(6);
else if(V >= Math.pow(10,10) && V < Math.pow(10,11)) o = v.toFixed(10).substr(0,12);
else if(V > Math.pow(10,-9) && V < Math.pow(10,11)) {
o = v.toFixed(12).replace(/(\.[0-9]*[1-9])0*$/,"$1").replace(/\.$/,"");
if(o.length > 11+(v<0?1:0)) o = v.toPrecision(10);
if(o.length > 11+(v<0?1:0)) o = v.toExponential(5);
}
else o = v.toPrecision(6);
return o.replace("e","E").replace(/\.0*$/,"").replace(/\.(.*[^0])0*$/,".$1").replace(/(E[+-])([0-9])$/,"$1"+"0"+"$2");
else {
o = v.toFixed(11).replace(/(\.[0-9]*[1-9])0*$/,"$1")
if(o.length > 11 + (v<0?1:0)) o = v.toPrecision(6);
}
if(v==0.000000001) console.log(v, o);
o = o.replace(/(\.[0-9]*[1-9])0+e/,"$1e").replace(/\.0*e/,"e");
return o.replace("e","E").replace(/\.0*$/,"").replace(/\.([0-9]*[^0])0*$/,".$1").replace(/(E[+-])([0-9])$/,"$1"+"0"+"$2");
}
```
@ -209,90 +218,6 @@ of the applications makes sense here:
};
```
These test cases were manually generated in Excel 2011 [value, code, result]:
```json>test/implied.json
[
[12345.6789, 0, "12345.6789"],
[12345.6789, 1, "12346"],
[12345.6789, 2, "12345.68"],
[12345.6789, 3, "12,346"],
[12345.6789, 4, "12,345.68"],
[12345.6789, 9, "1234568%"],
[12345.6789, 10, "1234567.89%"],
[12345.6789, 11, "1.23E+04"],
[12345.6789, 12, "12345 2/3"],
[12345.6789, 13, "12345 55/81"],
[12345.6789, 14, "10/18/33"],
[12345.6789, 15, "18-Oct-33"],
[12345.6789, 16, "18-Oct"],
[12345.6789, 17, "Oct-33"],
[12345.6789, 18, "4:17 PM"],
[12345.6789, 19, "4:17:37 PM"],
[12345.6789, 20, "16:17"],
[12345.6789, 21, "16:17:37"],
[12345.6789, 22, "10/18/33 16:17"],
[12345.6789, 37, "12,346"],
[12345.6789, 38, "12,346"],
[12345.6789, 39, "12,345.68"],
[12345.6789, 40, "12,345.68"],
[12345.6789, 45, "17:37"],
[12345.6789, 46, "296296:17:37"],
[12345.6789, 47, "1737.0"],
[12345.6789, 48, "12.3E+3"],
[12345.6789, 49, "12345.6789"],
[-12345.6789, 0, "-12345.6789"],
[-12345.6789, 1, "-12346"],
[-12345.6789, 2, "-12345.68"],
[-12345.6789, 3, "-12,346"],
[-12345.6789, 4, "-12,345.68"],
[-12345.6789, 9, "-1234568%"],
[-12345.6789, 10, "-1234567.89%"],
[-12345.6789, 11, "-1.23E+04"],
[-12345.6789, 12, "-12345 2/3"],
[-12345.6789, 13, "-12345 55/81"],
[-12345.6789, 14, ""],
[-12345.6789, 15, ""],
[-12345.6789, 16, ""],
[-12345.6789, 17, ""],
[-12345.6789, 18, ""],
[-12345.6789, 19, ""],
[-12345.6789, 20, ""],
[-12345.6789, 21, ""],
[-12345.6789, 22, ""],
[-12345.6789, 37, "(12,346)"],
[-12345.6789, 38, "(12,346)"],
[-12345.6789, 39, "(12,345.68)"],
[-12345.6789, 40, "(12,345.68)"],
[-12345.6789, 45, ""],
[-12345.6789, 46, ""],
[-12345.6789, 47, ""],
[-12345.6789, 48, "-12.3E+3"],
[-12345.6789, 49, "-12345.6789"],
```
These test cases emerged from formula_stress_test.xls:
```
[11.666666666666666, 0, "11.66666667"],
[5.057996968497839, 0, "5.057996968"],
[4.380353866983808, 0, "4.380353867"],
[12.333333333333343, 0, "12.33333333"],
[-0.000006211546860868111, 0, "-6.21155E-06"],
```
Finally, these are fairly obvious:
```
[true, 0, "TRUE"],
[false, 0, "FALSE"],
[0, 0, "0"]
]
```
## Dates and Time
The code `ddd` displays short day-of-week and `dddd` shows long day-of-week:
@ -857,7 +782,7 @@ test:
```json>package.json
{
"name": "ssf",
"version": "0.3.0",
"version": "0.3.1",
"author": "SheetJS",
"description": "pure-JS library to format data using ECMA-376 spreadsheet Format Codes",
"keywords": [ "format", "sprintf", "spreadsheet" ],

View File

@ -90,11 +90,20 @@ var general_fmt = function(v) {
if(V >= 0.1 && V < 1) o = v.toPrecision(9);
else if(V >= 0.01 && V < 0.1) o = v.toPrecision(8);
else if(V >= 0.001 && V < 0.01) o = v.toPrecision(7);
else if(V > Math.pow(10,-9) && V < Math.pow(10,10)) {
o = v.toPrecision(10); if(o.length > 11+(v<0?1:0)) o = v.toExponential(5);
else if(V >= 0.0001 && V < 0.001) o = v.toPrecision(6);
else if(V >= Math.pow(10,10) && V < Math.pow(10,11)) o = v.toFixed(10).substr(0,12);
else if(V > Math.pow(10,-9) && V < Math.pow(10,11)) {
o = v.toFixed(12).replace(/(\.[0-9]*[1-9])0*$/,"$1").replace(/\.$/,"");
if(o.length > 11+(v<0?1:0)) o = v.toPrecision(10);
if(o.length > 11+(v<0?1:0)) o = v.toExponential(5);
}
else o = v.toPrecision(6);
return o.replace("e","E").replace(/\.0*$/,"").replace(/\.(.*[^0])0*$/,".$1").replace(/(E[+-])([0-9])$/,"$1"+"0"+"$2");
else {
o = v.toFixed(11).replace(/(\.[0-9]*[1-9])0*$/,"$1")
if(o.length > 11 + (v<0?1:0)) o = v.toPrecision(6);
}
if(v==0.000000001) console.log(v, o);
o = o.replace(/(\.[0-9]*[1-9])0+e/,"$1e").replace(/\.0*e/,"e");
return o.replace("e","E").replace(/\.0*$/,"").replace(/\.([0-9]*[^0])0*$/,".$1").replace(/(E[+-])([0-9])$/,"$1"+"0"+"$2");
}
if(typeof v === 'string') return v;
throw "unsupported value in General format: " + v;

View File

@ -56,12 +56,525 @@
[-12345.6789, 47, ""],
[-12345.6789, 48, "-12.3E+3"],
[-12345.6789, 49, "-12345.6789"],
[1.234567E-14, 0, "1.23457E-14"],
[1.234567E-13, 0, "1.23457E-13"],
[1.234567E-12, 0, "1.23457E-12"],
[1.234567E-11, 0, "1.23457E-11"],
[1.234567E-10, 0, "1.23457E-10"],
[1.234567E-9, 0, "1.23457E-09"],
[1.234567E-8, 0, "1.23457E-08"],
[1.234567E-7, 0, "1.23457E-07"],
[1.234567E-6, 0, "1.23457E-06"],
[1.234567E-5, 0, "1.23457E-05"],
[1.234567E-4, 0, "0.000123457"],
[1.234567E-3, 0, "0.001234567"],
[1.234567E-2, 0, "0.01234567"],
[1.234567E-1, 0, "0.1234567"],
[1.234567E0, 0, "1.234567"],
[1.234567E1, 0, "12.34567"],
[1.234567E2, 0, "123.4567"],
[1.234567E3, 0, "1234.567"],
[1.234567E4, 0, "12345.67"],
[1.234567E5, 0, "123456.7"],
[1.234567E6, 0, "1234567"],
[1.234567E7, 0, "12345670"],
[1.234567E8, 0, "123456700"],
[1.234567E9, 0, "1234567000"],
[1.234567E10, 0, "12345670000"],
[1.234567E11, 0, "1.23457E+11"],
[1.234567E12, 0, "1.23457E+12"],
[1.234567E13, 0, "1.23457E+13"],
[1.234567E14, 0, "1.23457E+14"],
[0.00000000000001, 0, "1E-14"],
[0.0000000000001, 0, "1E-13"],
[0.000000000001, 0, "1E-12"],
[0.00000000001, 0, "1E-11"],
[0.0000000001, 0, "1E-10"],
[0.000000001, 0, "0.000000001"],
[0.00000001, 0, "0.00000001"],
[0.0000001, 0, "0.0000001"],
[0.000001, 0, "0.000001"],
[0.00001, 0, "0.00001"],
[0.0001, 0, "0.0001"],
[0.001, 0, "0.001"],
[0.01, 0, "0.01"],
[0.1, 0, "0.1"],
[1, 0, "1"],
[10, 0, "10"],
[100, 0, "100"],
[1000, 0, "1000"],
[10000, 0, "10000"],
[100000, 0, "100000"],
[1000000, 0, "1000000"],
[10000000, 0, "10000000"],
[100000000, 0, "100000000"],
[1000000000, 0, "1000000000"],
[10000000000, 0, "10000000000"],
[100000000000, 0, "1E+11"],
[1000000000000, 0, "1E+12"],
[10000000000000, 0, "1E+13"],
[100000000000000, 0, "1E+14"],
[0.000000000000012, 0, "1.2E-14"],
[0.00000000000012, 0, "1.2E-13"],
[0.0000000000012, 0, "1.2E-12"],
[0.000000000012, 0, "1.2E-11"],
[0.00000000012, 0, "1.2E-10"],
[0.0000000012, 0, "1.2E-09"],
[0.000000012, 0, "0.000000012"],
[0.00000012, 0, "0.00000012"],
[0.0000012, 0, "0.0000012"],
[0.000012, 0, "0.000012"],
[0.00012, 0, "0.00012"],
[0.0012, 0, "0.0012"],
[0.012, 0, "0.012"],
[0.12, 0, "0.12"],
[1.2, 0, "1.2"],
[12, 0, "12"],
[120, 0, "120"],
[1200, 0, "1200"],
[12000, 0, "12000"],
[120000, 0, "120000"],
[1200000, 0, "1200000"],
[12000000, 0, "12000000"],
[120000000, 0, "120000000"],
[1200000000, 0, "1200000000"],
[12000000000, 0, "12000000000"],
[120000000000, 0, "1.2E+11"],
[1200000000000, 0, "1.2E+12"],
[12000000000000, 0, "1.2E+13"],
[120000000000000, 0, "1.2E+14"],
[0.0000000000000123, 0, "1.23E-14"],
[0.000000000000123, 0, "1.23E-13"],
[0.00000000000123, 0, "1.23E-12"],
[0.0000000000123, 0, "1.23E-11"],
[0.000000000123, 0, "1.23E-10"],
[0.00000000123, 0, "1.23E-09"],
[0.0000000123, 0, "1.23E-08"],
[0.000000123, 0, "0.000000123"],
[0.00000123, 0, "0.00000123"],
[0.0000123, 0, "0.0000123"],
[0.000123, 0, "0.000123"],
[0.00123, 0, "0.00123"],
[0.0123, 0, "0.0123"],
[0.123, 0, "0.123"],
[1.23, 0, "1.23"],
[12.3, 0, "12.3"],
[123, 0, "123"],
[1230, 0, "1230"],
[12300, 0, "12300"],
[123000, 0, "123000"],
[1230000, 0, "1230000"],
[12300000, 0, "12300000"],
[123000000, 0, "123000000"],
[1230000000, 0, "1230000000"],
[12300000000, 0, "12300000000"],
[123000000000, 0, "1.23E+11"],
[1230000000000, 0, "1.23E+12"],
[12300000000000, 0, "1.23E+13"],
[123000000000000, 0, "1.23E+14"],
[0.00000000000001234, 0, "1.234E-14"],
[0.0000000000001234, 0, "1.234E-13"],
[0.000000000001234, 0, "1.234E-12"],
[0.00000000001234, 0, "1.234E-11"],
[0.0000000001234, 0, "1.234E-10"],
[0.000000001234, 0, "1.234E-09"],
[0.00000001234, 0, "1.234E-08"],
[0.0000001234, 0, "1.234E-07"],
[0.000001234, 0, "0.000001234"],
[0.00001234, 0, "0.00001234"],
[0.0001234, 0, "0.0001234"],
[0.001234, 0, "0.001234"],
[0.01234, 0, "0.01234"],
[0.1234, 0, "0.1234"],
[1.234, 0, "1.234"],
[12.34, 0, "12.34"],
[123.4, 0, "123.4"],
[1234, 0, "1234"],
[12340, 0, "12340"],
[123400, 0, "123400"],
[1234000, 0, "1234000"],
[12340000, 0, "12340000"],
[123400000, 0, "123400000"],
[1234000000, 0, "1234000000"],
[12340000000, 0, "12340000000"],
[123400000000, 0, "1.234E+11"],
[1234000000000, 0, "1.234E+12"],
[12340000000000, 0, "1.234E+13"],
[123400000000000, 0, "1.234E+14"],
[0.000000000000012345, 0, "1.2345E-14"],
[0.00000000000012345, 0, "1.2345E-13"],
[0.0000000000012345, 0, "1.2345E-12"],
[0.000000000012345, 0, "1.2345E-11"],
[0.00000000012345, 0, "1.2345E-10"],
[0.0000000012345, 0, "1.2345E-09"],
[0.000000012345, 0, "1.2345E-08"],
[0.00000012345, 0, "1.2345E-07"],
[0.0000012345, 0, "1.2345E-06"],
[0.000012345, 0, "0.000012345"],
[0.00012345, 0, "0.00012345"],
[0.0012345, 0, "0.0012345"],
[0.012345, 0, "0.012345"],
[0.12345, 0, "0.12345"],
[1.2345, 0, "1.2345"],
[12.345, 0, "12.345"],
[123.45, 0, "123.45"],
[1234.5, 0, "1234.5"],
[12345, 0, "12345"],
[123450, 0, "123450"],
[1234500, 0, "1234500"],
[12345000, 0, "12345000"],
[123450000, 0, "123450000"],
[1234500000, 0, "1234500000"],
[12345000000, 0, "12345000000"],
[123450000000, 0, "1.2345E+11"],
[1234500000000, 0, "1.2345E+12"],
[12345000000000, 0, "1.2345E+13"],
[123450000000000, 0, "1.2345E+14"],
[0.0000000000000123456, 0, "1.23456E-14"],
[0.000000000000123456, 0, "1.23456E-13"],
[0.00000000000123456, 0, "1.23456E-12"],
[0.0000000000123456, 0, "1.23456E-11"],
[0.000000000123456, 0, "1.23456E-10"],
[0.00000000123456, 0, "1.23456E-09"],
[0.0000000123456, 0, "1.23456E-08"],
[0.000000123456, 0, "1.23456E-07"],
[0.00000123456, 0, "1.23456E-06"],
[0.0000123456, 0, "1.23456E-05"],
[0.000123456, 0, "0.000123456"],
[0.00123456, 0, "0.00123456"],
[0.0123456, 0, "0.0123456"],
[0.123456, 0, "0.123456"],
[1.23456, 0, "1.23456"],
[12.3456, 0, "12.3456"],
[123.456, 0, "123.456"],
[1234.56, 0, "1234.56"],
[12345.6, 0, "12345.6"],
[123456, 0, "123456"],
[1234560, 0, "1234560"],
[12345600, 0, "12345600"],
[123456000, 0, "123456000"],
[1234560000, 0, "1234560000"],
[12345600000, 0, "12345600000"],
[123456000000, 0, "1.23456E+11"],
[1234560000000, 0, "1.23456E+12"],
[12345600000000, 0, "1.23456E+13"],
[123456000000000, 0, "1.23456E+14"],
[0.00000000000001234567, 0, "1.23457E-14"],
[0.0000000000001234567, 0, "1.23457E-13"],
[0.000000000001234567, 0, "1.23457E-12"],
[0.00000000001234567, 0, "1.23457E-11"],
[0.0000000001234567, 0, "1.23457E-10"],
[0.000000001234567, 0, "1.23457E-09"],
[0.00000001234567, 0, "1.23457E-08"],
[0.0000001234567, 0, "1.23457E-07"],
[0.000001234567, 0, "1.23457E-06"],
[0.00001234567, 0, "1.23457E-05"],
[0.0001234567, 0, "0.000123457"],
[0.001234567, 0, "0.001234567"],
[0.01234567, 0, "0.01234567"],
[0.1234567, 0, "0.1234567"],
[1.234567, 0, "1.234567"],
[12.34567, 0, "12.34567"],
[123.4567, 0, "123.4567"],
[1234.567, 0, "1234.567"],
[12345.67, 0, "12345.67"],
[123456.7, 0, "123456.7"],
[1234567, 0, "1234567"],
[12345670, 0, "12345670"],
[123456700, 0, "123456700"],
[1234567000, 0, "1234567000"],
[12345670000, 0, "12345670000"],
[123456700000, 0, "1.23457E+11"],
[1234567000000, 0, "1.23457E+12"],
[12345670000000, 0, "1.23457E+13"],
[123456700000000, 0, "1.23457E+14"],
[0.000000000000012345678, 0, "1.23457E-14"],
[0.00000000000012345678, 0, "1.23457E-13"],
[0.0000000000012345678, 0, "1.23457E-12"],
[0.000000000012345678, 0, "1.23457E-11"],
[0.00000000012345678, 0, "1.23457E-10"],
[0.0000000012345678, 0, "1.23457E-09"],
[0.000000012345678, 0, "1.23457E-08"],
[0.00000012345678, 0, "1.23457E-07"],
[0.0000012345678, 0, "1.23457E-06"],
[0.000012345678, 0, "1.23457E-05"],
[0.00012345678, 0, "0.000123457"],
[0.0012345678, 0, "0.001234568"],
[0.012345678, 0, "0.012345678"],
[0.12345678, 0, "0.12345678"],
[1.2345678, 0, "1.2345678"],
[12.345678, 0, "12.345678"],
[123.45678, 0, "123.45678"],
[1234.5678, 0, "1234.5678"],
[12345.678, 0, "12345.678"],
[123456.78, 0, "123456.78"],
[1234567.8, 0, "1234567.8"],
[12345678, 0, "12345678"],
[123456780, 0, "123456780"],
[1234567800, 0, "1234567800"],
[12345678000, 0, "12345678000"],
[123456780000, 0, "1.23457E+11"],
[1234567800000, 0, "1.23457E+12"],
[12345678000000, 0, "1.23457E+13"],
[123456780000000, 0, "1.23457E+14"],
[0.0000000000000123456789, 0, "1.23457E-14"],
[0.000000000000123456789, 0, "1.23457E-13"],
[0.00000000000123456789, 0, "1.23457E-12"],
[0.0000000000123456789, 0, "1.23457E-11"],
[0.000000000123456789, 0, "1.23457E-10"],
[0.00000000123456789, 0, "1.23457E-09"],
[0.0000000123456789, 0, "1.23457E-08"],
[0.000000123456789, 0, "1.23457E-07"],
[0.00000123456789, 0, "1.23457E-06"],
[0.0000123456789, 0, "1.23457E-05"],
[0.000123456789, 0, "0.000123457"],
[0.00123456789, 0, "0.001234568"],
[0.0123456789, 0, "0.012345679"],
[0.123456789, 0, "0.123456789"],
[1.23456789, 0, "1.23456789"],
[12.3456789, 0, "12.3456789"],
[123.456789, 0, "123.456789"],
[1234.56789, 0, "1234.56789"],
[12345.6789, 0, "12345.6789"],
[123456.789, 0, "123456.789"],
[1234567.89, 0, "1234567.89"],
[12345678.9, 0, "12345678.9"],
[123456789, 0, "123456789"],
[1234567890, 0, "1234567890"],
[12345678900, 0, "12345678900"],
[123456789000, 0, "1.23457E+11"],
[1234567890000, 0, "1.23457E+12"],
[12345678900000, 0, "1.23457E+13"],
[123456789000000, 0, "1.23457E+14"],
[0.00000000000001234567891, 0, "1.23457E-14"],
[0.0000000000001234567891, 0, "1.23457E-13"],
[0.000000000001234567891, 0, "1.23457E-12"],
[0.00000000001234567891, 0, "1.23457E-11"],
[0.0000000001234567891, 0, "1.23457E-10"],
[0.000000001234567891, 0, "1.23457E-09"],
[0.00000001234567891, 0, "1.23457E-08"],
[0.0000001234567891, 0, "1.23457E-07"],
[0.000001234567891, 0, "1.23457E-06"],
[0.00001234567891, 0, "1.23457E-05"],
[0.0001234567891, 0, "0.000123457"],
[0.001234567891, 0, "0.001234568"],
[0.01234567891, 0, "0.012345679"],
[0.1234567891, 0, "0.123456789"],
[1.234567891, 0, "1.234567891"],
[12.34567891, 0, "12.34567891"],
[123.4567891, 0, "123.4567891"],
[1234.567891, 0, "1234.567891"],
[12345.67891, 0, "12345.67891"],
[123456.7891, 0, "123456.7891"],
[1234567.891, 0, "1234567.891"],
[12345678.91, 0, "12345678.91"],
[123456789.1, 0, "123456789.1"],
[1234567891, 0, "1234567891"],
[12345678910, 0, "12345678910"],
[123456789100, 0, "1.23457E+11"],
[1234567891000, 0, "1.23457E+12"],
[12345678910000, 0, "1.23457E+13"],
[123456789100000, 0, "1.23457E+14"],
[0.000000000000012345678912, 0, "1.23457E-14"],
[0.00000000000012345678912, 0, "1.23457E-13"],
[0.0000000000012345678912, 0, "1.23457E-12"],
[0.000000000012345678912, 0, "1.23457E-11"],
[0.00000000012345678912, 0, "1.23457E-10"],
[0.0000000012345678912, 0, "1.23457E-09"],
[0.000000012345678912, 0, "1.23457E-08"],
[0.00000012345678912, 0, "1.23457E-07"],
[0.0000012345678912, 0, "1.23457E-06"],
[0.000012345678912, 0, "1.23457E-05"],
[0.00012345678912, 0, "0.000123457"],
[0.0012345678912, 0, "0.001234568"],
[0.012345678912, 0, "0.012345679"],
[0.12345678912, 0, "0.123456789"],
[1.2345678912, 0, "1.234567891"],
[12.345678912, 0, "12.34567891"],
[123.45678912, 0, "123.4567891"],
[1234.5678912, 0, "1234.567891"],
[12345.678912, 0, "12345.67891"],
[123456.78912, 0, "123456.7891"],
[1234567.8912, 0, "1234567.891"],
[12345678.912, 0, "12345678.91"],
[123456789.12, 0, "123456789.1"],
[1234567891.2, 0, "1234567891"],
[12345678912, 0, "12345678912"],
[123456789120, 0, "1.23457E+11"],
[1234567891200, 0, "1.23457E+12"],
[12345678912000, 0, "1.23457E+13"],
[123456789120000, 0, "1.23457E+14"],
[0.0000000000000123456789123, 0, "1.23457E-14"],
[0.000000000000123456789123, 0, "1.23457E-13"],
[0.00000000000123456789123, 0, "1.23457E-12"],
[0.0000000000123456789123, 0, "1.23457E-11"],
[0.000000000123456789123, 0, "1.23457E-10"],
[0.00000000123456789123, 0, "1.23457E-09"],
[0.0000000123456789123, 0, "1.23457E-08"],
[0.000000123456789123, 0, "1.23457E-07"],
[0.00000123456789123, 0, "1.23457E-06"],
[0.0000123456789123, 0, "1.23457E-05"],
[0.000123456789123, 0, "0.000123457"],
[0.00123456789123, 0, "0.001234568"],
[0.0123456789123, 0, "0.012345679"],
[0.123456789123, 0, "0.123456789"],
[1.23456789123, 0, "1.234567891"],
[12.3456789123, 0, "12.34567891"],
[123.456789123, 0, "123.4567891"],
[1234.56789123, 0, "1234.567891"],
[12345.6789123, 0, "12345.67891"],
[123456.789123, 0, "123456.7891"],
[1234567.89123, 0, "1234567.891"],
[12345678.9123, 0, "12345678.91"],
[123456789.123, 0, "123456789.1"],
[1234567891.23, 0, "1234567891"],
[12345678912.3, 0, "12345678912"],
[123456789123, 0, "1.23457E+11"],
[1234567891230, 0, "1.23457E+12"],
[12345678912300, 0, "1.23457E+13"],
[123456789123000, 0, "1.23457E+14"],
[0.00000000000001234567891234, 0, "1.23457E-14"],
[0.0000000000001234567891234, 0, "1.23457E-13"],
[0.000000000001234567891234, 0, "1.23457E-12"],
[0.00000000001234567891234, 0, "1.23457E-11"],
[0.0000000001234567891234, 0, "1.23457E-10"],
[0.000000001234567891234, 0, "1.23457E-09"],
[0.00000001234567891234, 0, "1.23457E-08"],
[0.0000001234567891234, 0, "1.23457E-07"],
[0.000001234567891234, 0, "1.23457E-06"],
[0.00001234567891234, 0, "1.23457E-05"],
[0.0001234567891234, 0, "0.000123457"],
[0.001234567891234, 0, "0.001234568"],
[0.01234567891234, 0, "0.012345679"],
[0.1234567891234, 0, "0.123456789"],
[1.234567891234, 0, "1.234567891"],
[12.34567891234, 0, "12.34567891"],
[123.4567891234, 0, "123.4567891"],
[1234.567891234, 0, "1234.567891"],
[12345.67891234, 0, "12345.67891"],
[123456.7891234, 0, "123456.7891"],
[1234567.891234, 0, "1234567.891"],
[12345678.91234, 0, "12345678.91"],
[123456789.1234, 0, "123456789.1"],
[1234567891.234, 0, "1234567891"],
[12345678912.34, 0, "12345678912"],
[123456789123.4, 0, "1.23457E+11"],
[1234567891234, 0, "1.23457E+12"],
[12345678912340, 0, "1.23457E+13"],
[123456789123400, 0, "1.23457E+14"],
[0.000000000000012345678912345, 0, "1.23457E-14"],
[0.00000000000012345678912345, 0, "1.23457E-13"],
[0.0000000000012345678912345, 0, "1.23457E-12"],
[0.000000000012345678912345, 0, "1.23457E-11"],
[0.00000000012345678912345, 0, "1.23457E-10"],
[0.0000000012345678912345, 0, "1.23457E-09"],
[0.000000012345678912345, 0, "1.23457E-08"],
[0.00000012345678912345, 0, "1.23457E-07"],
[0.0000012345678912345, 0, "1.23457E-06"],
[0.000012345678912345, 0, "1.23457E-05"],
[0.00012345678912345, 0, "0.000123457"],
[0.0012345678912345, 0, "0.001234568"],
[0.012345678912345, 0, "0.012345679"],
[0.12345678912345, 0, "0.123456789"],
[1.2345678912345, 0, "1.234567891"],
[12.345678912345, 0, "12.34567891"],
[123.45678912345, 0, "123.4567891"],
[1234.5678912345, 0, "1234.567891"],
[12345.678912345, 0, "12345.67891"],
[123456.78912345, 0, "123456.7891"],
[1234567.8912345, 0, "1234567.891"],
[12345678.912345, 0, "12345678.91"],
[123456789.12345, 0, "123456789.1"],
[1234567891.2345, 0, "1234567891"],
[12345678912.345, 0, "12345678912"],
[123456789123.45, 0, "1.23457E+11"],
[1234567891234.5, 0, "1.23457E+12"],
[12345678912345, 0, "1.23457E+13"],
[123456789123450, 0, "1.23457E+14"],
[0.0000000000000123456789123456, 0, "1.23457E-14"],
[0.000000000000123456789123456, 0, "1.23457E-13"],
[0.00000000000123456789123456, 0, "1.23457E-12"],
[0.0000000000123456789123456, 0, "1.23457E-11"],
[0.000000000123456789123456, 0, "1.23457E-10"],
[0.00000000123456789123456, 0, "1.23457E-09"],
[0.0000000123456789123456, 0, "1.23457E-08"],
[0.000000123456789123456, 0, "1.23457E-07"],
[0.00000123456789123456, 0, "1.23457E-06"],
[0.0000123456789123456, 0, "1.23457E-05"],
[0.000123456789123456, 0, "0.000123457"],
[0.00123456789123456, 0, "0.001234568"],
[0.0123456789123456, 0, "0.012345679"],
[0.123456789123456, 0, "0.123456789"],
[1.23456789123456, 0, "1.234567891"],
[12.3456789123456, 0, "12.34567891"],
[123.456789123456, 0, "123.4567891"],
[1234.56789123456, 0, "1234.567891"],
[12345.6789123456, 0, "12345.67891"],
[123456.789123456, 0, "123456.7891"],
[1234567.89123456, 0, "1234567.891"],
[12345678.9123456, 0, "12345678.91"],
[123456789.123456, 0, "123456789.1"],
[1234567891.23456, 0, "1234567891"],
[12345678912.3456, 0, "12345678912"],
[123456789123.456, 0, "1.23457E+11"],
[1234567891234.56, 0, "1.23457E+12"],
[12345678912345.6, 0, "1.23457E+13"],
[123456789123456, 0, "1.23457E+14"],
[-0.00000000000001234567, 0, "-1.23457E-14"],
[-0.0000000000001234567, 0, "-1.23457E-13"],
[-0.000000000001234567, 0, "-1.23457E-12"],
[-0.00000000001234567, 0, "-1.23457E-11"],
[-0.0000000001234567, 0, "-1.23457E-10"],
[-0.000000001234567, 0, "-1.23457E-09"],
[-0.00000001234567, 0, "-1.23457E-08"],
[-0.0000001234567, 0, "-1.23457E-07"],
[-0.000001234567, 0, "-1.23457E-06"],
[-0.00001234567, 0, "-1.23457E-05"],
[-0.0001234567, 0, "-0.000123457"],
[-0.001234567, 0, "-0.001234567"],
[-0.01234567, 0, "-0.01234567"],
[-0.1234567, 0, "-0.1234567"],
[-1.234567, 0, "-1.234567"],
[-12.34567, 0, "-12.34567"],
[-123.4567, 0, "-123.4567"],
[-1234.567, 0, "-1234.567"],
[-12345.67, 0, "-12345.67"],
[-123456.7, 0, "-123456.7"],
[-1234567, 0, "-1234567"],
[-12345670, 0, "-12345670"],
[-123456700, 0, "-123456700"],
[-1234567000, 0, "-1234567000"],
[-12345670000, 0, "-12345670000"],
[-123456700000, 0, "-1.23457E+11"],
[-1234567000000, 0, "-1.23457E+12"],
[-12345670000000, 0, "-1.23457E+13"],
[-123456700000000, 0, "-1.23457E+14"],
[true, 0, "TRUE"],
[false, 0, "FALSE"],
[11.666666666666666, 0, "11.66666667"],
[5.057996968497839, 0, "5.057996968"],
[4.380353866983808, 0, "4.380353867"],
[12.333333333333343, 0, "12.33333333"],
[-0.000006211546860868111, 0, "-6.21155E-06"],
[true, 0, "TRUE"],
[false, 0, "FALSE"],
[0, 0, "0"]
]