Because of floating point error, my computer basically says $10^9 \sqrt{3} \approx 1.73205 \times 10^9$ so that if we ignore the numbers before the decimal point, the fractional part is: $$\{ 10^9 \sqrt{3} \} = 0$$
That's obviously wrong. As the algorithm progresses, the program keeps losing accuracy, effectively getting the error I just described. if I type it directly we get the correct answer:
$$ 10^9 \sqrt{3} = 1732050807.\color{#00D000}{56}88772$$
but the computer doesn't store all these digits forever. I could like to know how to get the first two decimal places without a calculator.
You have found a "good" rational approximation for $\sqrt 3$ and in this case that's not really surprising to get a string of $0$s after the decimal point about as long as the integer coefficients.
For example, look at the numbers
$x_n = (2+\sqrt 3)^n(1+\sqrt 3)$ and $y_n = (2-\sqrt 3)^n(1-\sqrt 3)$
$x_ny_n = -2$, so while $x_n$ gets very large, $y_n$ gets very small.
Expanding $x_n$ you get $x_n = a_n + b_n\sqrt 3$ where $a_n$ and $b_n$ are some positive integers.
Then $b_n\sqrt 3 = a_n - (a_n - b_n \sqrt 3) = a_n - y_n$.
For example with $n=15$, you get
$299303201\sqrt 3 = 518408351 - y_{15} = 518408351.00000000192898\ldots$
Your example is obtained with $x = (8+15\sqrt 3)(2+\sqrt 3)^{14} = 1727701796+997489097 \sqrt 3$
so that $997489097 \sqrt 3 = 1727701796 - (8-15\sqrt 3)(2-\sqrt 3)^{14} = 1727701796.000000176824\ldots$
which is less "impressive" because $(8+15\sqrt 3)$ has norm $-611$ while $(1+\sqrt 3)$ has norm $-2$.