Skip to content

Making f64::from_str case insensitive #48881

Closed
@JohnBSmith

Description

@JohnBSmith

Consider making f64::from_str(src: &str) -> Result<f64, ParseFloatError> case insensitive due to the following reasons:

  1. people may see infinity as a constant and write "INF" or "Inf"
  2. f64::INFINITY is all upper case
  3. f64::NAN is all upper case
  4. is_nan is all lower case
  5. e in "12e3" is case insensitive, so it seems to be inconsequent
  6. "NaN" is camel case, but "inf" is lower case, which seems to be a little bit inconsistent
  7. to_ascii_lowercase is slow and will not be of help as "NaN" is mixed case
  8. to_ascii_uppercase is slow and will not be of help as "NaN" is mixed case
  9. a hypotetical function to_standard_form(src: &str, dest: &mut str) -> Result<(), ParseFloatError> is not possible as str cannot be mutable

So far, only "inf" and "NaN" are allowed.

Cons:

  • slows parsers down by a minimal amount
  • increases code size by a minimal amount

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-feature-requestCategory: A feature request, i.e: not implemented / a PR.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions