: . 3.554 output = 3 43.000 output = 0
: , 0.33345. , - 0.333459999... 125. , , 0.33345 - , .
, , . < br/ " >
int digits (double v) {
int d = 0; (d < 50) {
string t = DoubleToString (v, d); double vt = StrToDouble (t);
if (MathAbs (v-vt) < 1e-15) break;
++ ;
}
return d;
}
double v = 0,33345; PrintFormat ( "v =% g, d =% i", v, (v));//v = 0.33345, d = 5
v = 0,01; PrintFormat ( "v =% g, d =% i", v, (v));//v = 0.01, d = 2
v = 0,00001; PrintFormat ( "v =% g, d =% i", v, (v));//v = 1e-05, d = 5
v = 5 * 0,00001; PrintFormat ( "v =% g, d =% i", v, (v));//v = 5e-05, d = 5
v = 5 * 0,1 * 0,1 * 0,1; PrintFormat ( "v =% g, d =% i", v, (v));//v = 0,005, d = 3
v = 0,05; PrintFormat ( "v =% g, d =% i", v, (v));//v = 0,05, d = 2
v = 0,25; PrintFormat ( "v =% g, d =% i", v, (v));//v = 0.25, d = 2
v = 1/3.; PrintFormat ( "v =% g, d =% i", v, (v));//v = 0.333333, d = 15