Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a way of disabling exponential notation when encoding doubles #374

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

zeionara
Copy link

@zeionara zeionara commented Jan 9, 2023

Closes #279

In current version all doubles are encoded in a scientific notation:

import Yams

print(try Yams.dump(object: 6.85)))

produces:

6.85e+0

The proposed change is to add a static option to Emitter.Options class, so it can be used as follows:

import Yams

Emitter.Options.doubleFormatStyle = .decimal
print(try Yams.dump(object: 6.85)))

which produces the expected result:

 6.85

YAMLEncoder object is also supported, as well as numbers with zero fraction part, which are not saved as integers. For example, the following code:

import Yams

Emitter.Options.doubleFormatStyle = .decimal
print(try YAMLEncoder().encode(6.0)))

generates the expected result:

6.0

@jpsim
Copy link
Owner

jpsim commented Jan 9, 2023

Very nice, thanks for the PR! I'll take a look shortly.

@jpsim
Copy link
Owner

jpsim commented Jan 9, 2023

Could you please address the failing CI jobs? Missing documentation comments and SwiftLint rule violations. Also CMake updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Doubles end up in exponential notation
2 participants