magiclen opened a new issue, #6111:
URL: https://github.com/apache/hop/issues/6111
### Apache Hop version?
2.16.0
### Java version?
21.0.8
### Operating system
Linux
### What happened?
### Description
When reading a `float(53)` or numeric value such as: `55487400.0`
Apache Hop serializes it as: `5.54874E+7`
Even though the value can be represented exactly as a decimal integer.
This causes downstream databases (e.g., ClickHouse Float64) to parse and
store a *different* floating-point value such as: `55487400.00000001`
This rounding drift happens because scientific notation forces additional
floating-point parsing and cannot preserve exact integer precision.
### Expected
- Hop should **not** convert integer-like floats into scientific notation.
- Or provide an option to disable scientific-notation formatting for numeric
fields.
- Or preserve original decimal representation when no precision is gained.
### Steps to Reproduce
1. Read a SQL Server `float(53)` value `55487400.0` in Hop.
2. Pass it through a Number/BigNumber field.
3. Output using "Table Output".
4. Observe Hop sending `5.54874E+7` instead of `55487400`.
### A Quick Test On ClickHouse
```sql
SELECT
toFloat64('5.54874E+7') AS a,
reinterpretAsUInt64(a) AS bits_a,
toFloat64('55487400') AS b,
reinterpretAsUInt64(b) AS bits_b;
```
`a` and `b` represent different values.
### Issue Priority
Priority: 2
### Issue Component
Component: Hop Gui, Component: Database, Component: Transforms
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]