very precise I believe all settings that allow a . in them are actually floats (in c). I think floats are 32bits in c... but perhaps it's also just however many bits your pc can handle.
I'm not extremely confident in this claim though... as it's been a while since I looked at any q3 code.
well ql cant even read the firts 50 decimals of pi so lmfao i woudnt count on much y do you think they didnt let the p[layers know about there decisions earlier? never trust numbers
Q3 uses 32-bit floats for sensitivity and mouse accel per the source code.
It's extremely likely that QL does as well.
This means roughly 7 digits of precision depending on the number. The actual decimal digits of precision is 7.2.
A float consists of three parts, a sign bit (negative or positive), a "mantissa" (or significand) and an exponent. For example with the number:
-5.4*10^3
The sign is negative, 5.4 is the mantissa, and 3 is the exponent. This looks different in binary but you get the idea.
Each part has its own piece of the 32-bits. Bits are either a 1 or a 0.
The sign bit is only one bit, 1 for negative, 0 for positive.
Next is the exponent which gets 8 bits. Normally this would mean being able to express 256 different values in binary. However, 255 and 0 are reserved so the range is between -126 and 127.
The remaining 23 bits are for the mantissa or significand, or "fraction". This would express 0 to 8388606.
This would indicate a largest possible float value of 8388606^127, however it's actually limited to 3.4*10^38. I'm too lazy to explain why at this time.
It's just that if you have for example two english letters, and you want to know how many possibilities there are between them you take the number of possibilities for each character, and take it to the power of the number of characters.
AA AB AC etc.
26 possibilities for each character. Two characters.
That's 26^2 = 676. That's a lot of possibilities for a 2-letter clan tag :-)
The same concept applies to 23 binary digits. Each character has two possibilities, and there are 23 characters. That's 2^23 = 8388608 different possible permutations. That's what I meant when I said it was indicated that there was such a range.
Long winded explanation on why the 10^38 to expand on what you wrote:
In truth the 32-bit floating point has some quirks that change things up. Although it isn't stored, a 1 is assumed at the beginning of the mantissa, making it effectively 24 bits.
This 1 is interpreted as 1.x , and what's called a normalized format is used. That looks like 1.x * 2^exponent.
What's really stored in binary for the exponent is not the exponent itself, but a kind of code for it. For example, the number 43.275 is expressed as 01000010001011010001100110011010
The first 0 means it is positive. The next 8 characters are for the exponent, which make 10000100. In decimal this is 132, and the distance from 132 to 127 is 5. This means that the exponent for the normalized number is 5.
Adding a 1 for the 1.x to the remaining digits I get
1.01011010001100110011010 is 1.3523438.
1.3523438 * 2^5 is 43.2750016
The 16 is past the amount of precision we're using, so it is just 43.275.
Using this format, it would seem we could do:
0 11111111 11111111111111111111111
However, all 1s for the exponent is reserved for special purposes, so have to use the next closest:
0 11111110 11111111111111111111111
That's 2^127
Binary 1.11111111111111111111111 in decimal is 1.999999, very close to 2.