microsoft / calculator

Windows Calculator: A simple yet powerful calculator that ships with Windows
MIT License
29.48k stars 5.34k forks source link

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

Open lwalkera opened 5 years ago

lwalkera commented 5 years ago

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.

MicrosoftIssueBot commented 5 years ago

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

grochocki commented 5 years ago

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.

zamadatix commented 5 years ago

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

I-Campbell commented 5 years ago

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

grochocki commented 5 years ago

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:

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

michael-hawker commented 5 years ago

@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?

grochocki commented 5 years ago

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.

SkillerCMP commented 5 months ago

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)

lwalkera commented 2 months ago

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).

zamadatix commented 2 months ago

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.