calculator icon indicating copy to clipboard operation
calculator copied to clipboard

Support floating point when in all radices in Programmer view (dec, octal, hex, bin)

Open lwalkera opened this issue 6 years ago • 10 comments

Problem Statement: Programmer mode does not support IEEE floating point data types as commonly used in programming languages. This limits the applicability of the calculator tool for anyone attempting to debug/investigate/test/perform floating point math using calculator. Evidence or User Insights: Looking at the source code of this very project reveals floats are very commonly used by the target user audience of the mode (programmers). Proposal: Add IEEE 754 standard binary float types (32 and 64 bit at minimum 16, 128, 256 bit and IEEE 754 decimal as a stretch) to the existing int data type list. Goals: The Calculator app be able to perform the full set of operations included in the programmer mode on the proposed IEEE 754 floating point types in the same fashion the various integer types are supported. Non-Goals: Non-IEEE standard floating point implementations such as float 8, float 24, or non standard variations of the primary float types are not part of the proposal. Low-Fidelity Concept: image

A team member has edited this comment to update the pitch based on discussion below.

lwalkera avatar Mar 06 '19 22:03 lwalkera

This is your friendly Microsoft Issue Bot. I've seen this issue come in and have gone to tell a human about it.

MicrosoftIssueBot avatar Mar 06 '19 22:03 MicrosoftIssueBot

Thanks for the feature suggestion! Interesting idea, but it seems like there are some missing details. We have a process in place for feature suggestions that impact the end-user experience, which includes a template that helps frame the feature pitch. Please update using that template.

grochocki avatar Mar 07 '19 00:03 grochocki

My shot at the proposed feature:

Problem Statement: Programmer mode does not support IEEE floating point data types as commonly used in programming languages. This limits the applicability of the calculator tool for anyone attempting to debug/investigate/test/perform floating point math using calculator. Evidence or User Insights: Looking at the source code of this very project reveals floats are very commonly used by the target user audience of the mode (programmers). Proposal: Add IEEE 754 standard binary float types (32 and 64 bit at minimum 16, 128, 256 bit and IEEE 754 decimal as a stretch) to the existing int data type list. Goals: The Calculator app be able to perform the full set of operations included in the programmer mode on the proposed IEEE 754 floating point types in the same fashion the various integer types are supported. Non-Goals: Non-IEEE standard floating point implementations such as float 8, float 24, or non standard variations of the primary float types are not part of the proposal. Low-Fidelity Concept: image

zamadatix avatar Mar 07 '19 01:03 zamadatix

I would also like to see just regular fractional places supported, for example 10.5dec = A.8hex. Probably a separate issue though

I-Campbell avatar Mar 09 '19 22:03 I-Campbell

We reviewed the pitch and would love to move forward with it! I think this pitch is a great start, but there are still some open questions. Moving this into planning to iron out some of the details.

A couple examples:

  • With justification, we should figure out exactly what set of radicies we should/shouldn't include.
  • With more options, we should rethink the toggle button approach for switching between radicies. Perhaps a combobox is more appropriate

I created calculator-specs/programmerradices to track progress. For more information on next steps, check out our spec workflow.

grochocki avatar Apr 12 '19 20:04 grochocki

@grochocki following from #493. Feel like this is the feature for the data types in #116, where #493 is a UX request for the UI behavior for selecting those data types? It probably makes sense to do them together implementation wise, but do you want them still as two separate issues for discussion?

michael-hawker avatar May 22 '19 06:05 michael-hawker

I agree that it makes sense to consolidate #116 and the part of the conversation in #493 that discusses UX improvements for selecting data types. #493 proposes two separate ideas and should probably pivot to focus on the other half of the proposal.

grochocki avatar May 22 '19 07:05 grochocki

there is 2 Float point/Hex formats that are mainly used when it comes to Float point to Hex . Hex Float32 and Float64(Double)

Float32 - 1.0 = 3F80 0000 Float64(Double) - 1.0 = 3FF0 0000 0000 0000

Types Include... fp16 (IEEE 754 binary16) fp32 (IEEE 754 binary32) fp64 (IEEE 754 binary64)

SkillerCMP avatar Apr 05 '24 03:04 SkillerCMP

The edited pitch is not what I intended. I'd like to see base-2 and base-16 floating point as @I-Campbell said, not some AI bulls*it, non-standard, floating point format (though those may be important to some).

lwalkera avatar Jul 08 '24 08:07 lwalkera

The edited pitch is not what I intended. I'd like to see base-2 and base-16 floating point as @I-Campbell said, not some AI bulls*it, non-standard, floating point format (though those may be important to some).

Not sure I follow, it seems like the edited proposal and comments sense refer to IEEE standard floating point types used by everything and not the typical nonstandard (shorter) types used by AI. The proposal also seems to still have the ability to switch the view of the float between base-2 ("BIN") and base-16 ("HEX") in the view.

zamadatix avatar Jul 08 '24 10:07 zamadatix