Search Issue Tracker

Fixed in 2020.2.9f1

Votes

0

Found in

2018.3.0a7

2018.4

2019.4.1f1

2020.2

Issue ID

1257445

Regression

Yes

The value of a float or double field becomes "0" when inputting "0/0" in the Inspector

IMGUI

-

How to reproduce:
1. Open the project "case_1257445-NaN"
2. Open the Scene "SampleScene"
3. Select the "GameObject" in the Hierarchy
4. Change the value of the field "varFloat" to "0/0" in the "New Behaviour Script (Script)" component in the Inspector

Expected results: the value of the field "varFloat" changes to "NaN"
Actual results: the value of the field "varFloat" changes to "0"

Reproducible with: 2018.3.0a7, 2018.3.14f1, 2018.4.25f1, 2019.3.16f1, 2019.4.3f1, 2020.1.0b15, 2020.2.0a17
Not reproducible with: 2018.3.0a6

  1. Response avatar

    Resolution Note (fix version 2020.2.9f1):

    This is an intended behaviour as the NaN value type is not really used for anything. Before this we only changed the value from NaN to 0 for double types. In that version it was also fixed to include float types. As NaN requires special handling to avoid issues and that it doesn't really serve a good purpose, these changes were made.

Comments (3)

  1. Ffd40da58868d12d646d78ff6d5ab04a?d=mm

    petersvp

    Jul 14, 2020 07:22

    No seriously NANs exist with a reason! It's our issue if floating point NAN propagation kills everything. NANs is also a test tool, and can also be used as memory-efficient way to tell a float that it has no value, instead of using bool hasValue - we already have float.isNan? What is next, Unity? to disable Infinities?

    [if anyone ever reads these....]

  2. Ffd40da58868d12d646d78ff6d5ab04a?d=mm

    petersvp

    Jul 14, 2020 07:20

    Seriously, NANs exist with A REASON!

  3. Ffd40da58868d12d646d78ff6d5ab04a?d=mm

    petersvp

    Jul 14, 2020 07:19

    This is not an acceptable behaviour! Most of my game custom logic DEPENDS of NAN input and i carefully check for float.isNaN! Now I am forced to either create the default value be NAN or editing the Unity Scene File directly. I cannot just go and refactor my code because I must refactor A LOT of scenes and objects. So far I am going with custom property drawer that supports NANs but this isn't good idea. Typing in "0/0" is advanced use and I gues you should give us a way to fill in NANs intentionally.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.