繁体   English   中英

我应该使用哪些类型来表示C#和SQL Server中的百分比?

[英]What types should I use to represent percentages in C# and SQL Server?

我在想漂浮物。 为了记录,我也使用NHibernate。

decimal

由于四舍五入,你不会失去精确度。

答案取决于应用程序。

其他人指出,十进制比浮点数更好,代表一个确切的值。 但有时最好使用浮点数来提高精度(例如,一组计算的权重加起来可以更好地表示为浮点数)

这在很大程度上取决于你需要多少精度; 最重要的是保持一致和清晰。 采取预防措施,以确保你在整个领域的使用是一致的...即不要将它存储为浮点数(n = .5),然后尝试重新组合它,就好像它是代码的另一部分中的整数(mypercentage = N / 100)。 只要你确保不这样做并且你没有制造需要30位精确数字的激光,只需在int,double或任何漂浮的船之间选择你最喜欢的味道。 瓦卡,瓦卡。

这取决于你需要多准确。 如果你不需要任何小数位,你甚至可以使用tiny int。 但是如果你需要一些小数位,通常浮点数很好。 我使用LLBLGen并浮动%

关于SQL Server,我很少存储一个百分比。 您希望存储用于获取百分比的数据并根据需要进行计算的9次中的9次。

当且仅当您有经验数据显示计算太慢时,请继续存储它。 使用之前建议的小数来避免舍入问题。

这取决于你使用它们的是什么。

如果是显示,int就可以了,并且比浮点快。 如果它是不经常的数学,那么int仍然会很好(或者在任何一种情况下都是短的)。

如果你正在做大量的数学运算,那么浮动可能是最好的,性能方面。

当然,除非你对百分比进行大量操作,否则考虑到现代处理器的速度,最终在性能方面并不重要。

编辑:当然,'int'假设您只使用严格的整数百分比。 如果你不是,你总是更好的浮动或dec。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM