mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-30 22:51:16 +01:00
35 lines
457 B
C++
35 lines
457 B
C++
|
#include <cmath>
|
||
|
#include "nicenum.h"
|
||
|
|
||
|
double niceNum(double x, int round)
|
||
|
{
|
||
|
int expv;
|
||
|
double f;
|
||
|
double nf;
|
||
|
|
||
|
expv = floor(log10(x));
|
||
|
f = x / pow(10.0, expv);
|
||
|
|
||
|
if (round) {
|
||
|
if (f < 1.5)
|
||
|
nf = 1.0;
|
||
|
else if (f < 3.0)
|
||
|
nf = 2.0;
|
||
|
else if (f < 7.0)
|
||
|
nf = 5.0;
|
||
|
else
|
||
|
nf = 10.0;
|
||
|
} else {
|
||
|
if (f <= 1.0)
|
||
|
nf = 1.0;
|
||
|
else if (f <= 2.0)
|
||
|
nf = 2.0;
|
||
|
else if (f <= 5.0)
|
||
|
nf = 5.0;
|
||
|
else
|
||
|
nf = 10.0;
|
||
|
}
|
||
|
|
||
|
return nf * pow(10.0, expv);
|
||
|
}
|