[英]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.