Fixed reading of decimal numbers when they are saved as int#17
Open
mbgonicus wants to merge 1 commit intopbnjay:mainfrom
Open
Fixed reading of decimal numbers when they are saved as int#17mbgonicus wants to merge 1 commit intopbnjay:mainfrom
mbgonicus wants to merge 1 commit intopbnjay:mainfrom
Conversation
The xls standard allows to save a decimal number like 1.75 as an integer, multiplied by 100. The current implementation did neither detect this as an integer nor as a float and subsequently returns the default value 0. This fix adds the case to RKNumber's Float64() method in order to retrieve the value correctly as float.
Owner
|
Hmm thanks for catching that! I think we should cover the remaining case also, can you add that in? if (r&1) == 0 && (r&2) != 0 {
return float64(val)
} |
Author
But that case would mean it is a signed integer and should be handled via the |
Author
|
@pbnjay btw the failing tests are failing already, i.e. are not failing due to my changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The xls standard allows to save a decimal number like 1.75 as an integer, multiplied by 100. The current implementation did neither detect this as an integer nor as a float and subsequently returns the default value 0.
This fix adds the case to RKNumber's Float64() method in order to retrieve the value correctly as float.
It also adds a test and a new xls file in testdata for this case. I did not dare to touch the existing xls files to not corrupt the saved data (I only have LibreOffice and it might do funky things). So if you do not like a new file there, please feel free to edit this PR to your liking.