Skip to content

Inserted FLOAT32 value has invalid precision #2421

@ikenox

Description

@ikenox

Please make sure you have searched for information in the following guides.

A screenshot that you have tested with "Try this API".

N/A

Link to the code that reproduces this issue. A link to a public Github Repository or gist with a minimal reproduction.

https://gist.github.com/ikenox/5d774d4da8bfb5e33ddbd114d514aff7

A step-by-step description of how to reproduce the issue, based on the linked reproduction.

  1. Execute the test code (gist)
  2. Test will fail:
    AssertionError: expected 3.140000104904175 to be 3.14 // Object.is equality
    
    - Expected
    + Received
    
    - 3.14
    + 3.140000104904175
    

A clear and concise description of what the bug is, and what you expected to happen.

When inserting JavaScript number values into FLOAT32 columns using the Node.js Spanner client, the values seems not to be properly converted to 32-bit floating point precision before insertion. This results in unexpected values being stored in the database.

For example, inserting the FLOAT32 value 3.14 results in the following database state:

Image

A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. **

The correct value should be inserted to the database.

Metadata

Metadata

Assignees

No one assigned

    Labels

    api: spannerIssues related to the googleapis/nodejs-spanner API.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions