Skip to content

GTA3 floating point math increments at 0.0625 at a time #221

@KyonkoYuuki

Description

@KyonkoYuuki

This is a really weird issue. I was debugging why some code wasn't working and made this simple counter CLEO script

{$CLEO .cs}
0@ = 0.0
while true
    wait 500
    0@ += 0.1
    0AD1: show_formatted_text_highpriority "%.6f" time 500 0@
end

One would expect it to go up like [0.1, 0.2, 0.3, 0.4, 0.5]

But instead, it goes up like [0.0625, 0.1250, 0.1875, 0.25, 0.3125]

Adding different values like between 0.0-0.6 causes 0@ to not change,
while adding something like 0.2 causes it to go more like [0.1875, 0.3125, 0.5625], as if it was rounding to the nearest floating point divisible by 0.625. I'm not sure if this is a Sanny Builder thing or GTA3 thing, but it does work as expected for VC and SA.

Setting values like 0@ = 0.3 does the same thing as well, where this rounds down to 0.25

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions