Fixed notations bugging out #282

Fixed notations bugging out #282
This commit is contained in:
DanielNoord
2020-11-30 10:37:37 +01:00
committed by GitHub
2 changed files with 66 additions and 22 deletions

View File

@@ -886,51 +886,73 @@ CM.Disp.Beautify = function(num, frac) {
} }
if (CM.Config.Scale == 3) { if (CM.Config.Scale == 3) {
if (num >= 10) { if (num >= 999999) {
var count = 0; var count = 0;
while (num >= 10) { while (num >= 10) {
count++; count++;
num /= 10; num /= 10;
} }
answer = Math.round(num * 1000) / 1000 + 'E+' + count; answer = +(Math.round(num + "e+2") + "e-2") + 'E+' + count;
} }
else if (num < 1 && num != 0) { else if (num < -999999 && num != 0) {
var count = 0; var count = 0;
while (num < 1) { while (num < 1) {
count++; count++;
num *= 10; num *= 10;
} }
answer = Math.round(num * 1000) / 1000 + 'E-' + count; answer = +(Math.round(num + "e+2") + "e-2") + 'E-' + count;
} }
else { else {
answer = Math.round(num * 1000) / 1000 + 'E+0'; answer = CM.Backup.Beautify(num, frac);
} }
} }
else if (CM.Config.Scale == 4) { else if (CM.Config.Scale == 4) {
if (num >= 1000) { if (um >= 999999) {
var count = 0; var count = 0;
while (num >= 1000) { while (num >= 1000) {
count++; count++;
num /= 1000; num /= 1000;
} }
answer = Math.round(num * 1000) / 1000 + 'E+' + (count * 3); answer = +(Math.round(num + "e+2") + "e-2") + 'E+' + (count * 3);
} }
else if (num < 1 && num != 0) { else if (num < -999999 && num != 0) {
var count = 0; var count = 0;
while (num < 1) { while (num < 1) {
count++; count++;
num *= 1000; num *= 1000;
} }
answer = Math.round(num * 1000) / 1000 + 'E-' + (count * 3); answer = +(Math.round(num + "e+2") + "e-2") + 'E-' + (count * 3);
} }
else { else {
answer = Math.round(num * 1000) / 1000 + 'E+0'; answer = CM.Backup.Beautify(num, frac);
} }
} }
else { else {
for (var i = (CM.Disp.shortScale.length - 1); i >= 0; i--) { for (var i = (CM.Disp.shortScale.length - 1); i >= 0; i--) {
if (i < CM.Disp.metric.length && CM.Config.Scale == 1) { if (i < CM.Disp.metric.length && CM.Config.Scale == 1) {
if (num >= Math.pow(1000, i + 2)) { // Revert to Scientific Notation from e27
if (Math.log10(num) > 27) {
if (num >= 999999) {
var count = 0;
while (num >= 10) {
count++;
num /= 10;
}
answer = +(Math.round(num + "e+2") + "e-2") + 'E+' + count;
}
else if (num < -999999 && num != 0) {
var count = 0;
while (num < 1) {
count++;
num *= 10;
}
answer = +(Math.round(num + "e+2") + "e-2") + 'E-' + count;
}
else {
answer = CM.Backup.Beautify(num, frac);
}
}
else if (num >= Math.pow(1000, i + 2)) {
answer = (Math.round(num / Math.pow(1000, i + 1)) / 1000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' ' + CM.Disp.metric[i]; answer = (Math.round(num / Math.pow(1000, i + 1)) / 1000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' ' + CM.Disp.metric[i];
break; break;
} }

View File

@@ -138,51 +138,73 @@ CM.Disp.Beautify = function(num, frac) {
} }
if (CM.Config.Scale == 3) { if (CM.Config.Scale == 3) {
if (num >= 10) { if (num >= 999999) {
var count = 0; var count = 0;
while (num >= 10) { while (num >= 10) {
count++; count++;
num /= 10; num /= 10;
} }
answer = Math.round(num * 1000) / 1000 + 'E+' + count; answer = +(Math.round(num + "e+2") + "e-2") + 'E+' + count;
} }
else if (num < 1 && num != 0) { else if (num < -999999 && num != 0) {
var count = 0; var count = 0;
while (num < 1) { while (num < 1) {
count++; count++;
num *= 10; num *= 10;
} }
answer = Math.round(num * 1000) / 1000 + 'E-' + count; answer = +(Math.round(num + "e+2") + "e-2") + 'E-' + count;
} }
else { else {
answer = Math.round(num * 1000) / 1000 + 'E+0'; answer = CM.Backup.Beautify(num, frac);
} }
} }
else if (CM.Config.Scale == 4) { else if (CM.Config.Scale == 4) {
if (num >= 1000) { if (um >= 999999) {
var count = 0; var count = 0;
while (num >= 1000) { while (num >= 1000) {
count++; count++;
num /= 1000; num /= 1000;
} }
answer = Math.round(num * 1000) / 1000 + 'E+' + (count * 3); answer = +(Math.round(num + "e+2") + "e-2") + 'E+' + (count * 3);
} }
else if (num < 1 && num != 0) { else if (num < -999999 && num != 0) {
var count = 0; var count = 0;
while (num < 1) { while (num < 1) {
count++; count++;
num *= 1000; num *= 1000;
} }
answer = Math.round(num * 1000) / 1000 + 'E-' + (count * 3); answer = +(Math.round(num + "e+2") + "e-2") + 'E-' + (count * 3);
} }
else { else {
answer = Math.round(num * 1000) / 1000 + 'E+0'; answer = CM.Backup.Beautify(num, frac);
} }
} }
else { else {
for (var i = (CM.Disp.shortScale.length - 1); i >= 0; i--) { for (var i = (CM.Disp.shortScale.length - 1); i >= 0; i--) {
if (i < CM.Disp.metric.length && CM.Config.Scale == 1) { if (i < CM.Disp.metric.length && CM.Config.Scale == 1) {
if (num >= Math.pow(1000, i + 2)) { // Revert to Scientific Notation from e27
if (Math.log10(num) > 27) {
if (num >= 999999) {
var count = 0;
while (num >= 10) {
count++;
num /= 10;
}
answer = +(Math.round(num + "e+2") + "e-2") + 'E+' + count;
}
else if (num < -999999 && num != 0) {
var count = 0;
while (num < 1) {
count++;
num *= 10;
}
answer = +(Math.round(num + "e+2") + "e-2") + 'E-' + count;
}
else {
answer = CM.Backup.Beautify(num, frac);
}
}
else if (num >= Math.pow(1000, i + 2)) {
answer = (Math.round(num / Math.pow(1000, i + 1)) / 1000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' ' + CM.Disp.metric[i]; answer = (Math.round(num / Math.pow(1000, i + 1)) / 1000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' ' + CM.Disp.metric[i];
break; break;
} }