C#: Storing percentages, 50 or 0.50?

妖精的绣舞 提交于 2019-12-09 14:40:20

问题


When holding percentage values in variables is there a preference between holding them as whole numbers vs fractions. That is should the variable hold numbers between 0 and 100 or between 0.00 and 1.00? In either case, the variable holding the values is of decimal type.

The database I'm interacting with happens to store them as whole numbers 0 to 100.

Note: I'm using the word "whole number" to denote values in the range 0 to 100 though those values may contain fractional components (e.g., 25.75). I don't know how else to describe the difference between the two ranges of percentage values


回答1:


I would be inclined to store them as 0 to 1, then there is no coversion required when using the number in a calculation.

Using a number between 0 and 100 is more of a display / readbility way of looking at the number. When you are displaying the percentage you can use String.Format("{0:P},percentage) which will expect the number to be between 0 and 1 but will display as 0 to 100.




回答2:


If you are using floating point fields (float, decimal, double), then 50.0 and 0.50 will have the same degree of precision. So, from this point, I would make decisions based on what similar fields in similar tables do, to give a sense of design unity.




回答3:


If you are doing a lot of math with fractions, you want to store the numerator and denominator separately as whole numbers. When using fractions to represent repeating or non-repeating decimals you can get rounding errors that grow the more operations you have.

If you are just storing and presenting the number, then it really doesn't matter.

What math do you plan to do with this number, if any?




回答4:


You can use doubles to represent both percentages and 0-1. But if you choose to store percentage as "whole number" I would advise against using integers, which would limit you if you ever want to represent 12.3%, for example.




回答5:


I think this is trivial... both are the same

I mean in terms of calculations/displaying info...

00.50 is cool for calculations

50.00 is cool for displaying


来源:https://stackoverflow.com/questions/3304177/c-storing-percentages-50-or-0-50

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!