Hi!
I would like to print a number to a texture, the problem is that I’ve imprecision problem, in fact, when I want to display this number :
double number = 45896.8579;
drawNumber(ivec2(0, resolution.y-1), 1, vec4(1, 0, 0, 1), number);
I got 45896.859375 instead of 45896.8579.
I extract the digits of the decimal part like this :
double rest = fract(number);
if (rest > 0) {
drawPunt(position, nbPixels, color);
position.x += digitSpacing;
do {
rest *= 10;
int digit = int(rest);
rest -= digit;
drawDigit(position, nbPixels, color, digit);
position.x += digitSpacing;
} while (rest != 0);
}
it should work like this :
rest = 8.579, digit = 8.
rest = 8.579 - 8 = 0.579.
rest = 5.79 digit = 5.
rest = 5.79 - 5 = 0.79.
rest = 7.9, digit = 7 or I get 9!!! So it’s the conversion from double to int which is not correct or it’s rest*10 which is not correct or it’s 5.79 - 5 which is not correct!