【发布时间】:2012-10-19 00:29:54
【问题描述】:
我在很多地方都使用 0.0-1.0 范围。一些例子包括:
报告进度(0=开始,0.5=50% 完成,1=完成),2 个对象之间的比较(0=不匹配,0.95=非常相似,1=相同)等。
我更喜欢避免使用任何固定范围 (0-100) 内的整数,因为 a) 示例中的 100 感觉随意,b) 像 12.5 这样的非离散值呢?
目前,我使用 double 并强迫自己遵守 0<=x<=1 的约定
这很好用,但我现在正在编写一个支持插件的应用程序,插件报告处理进度。目前,这是由 double 报告的,如果值超出范围,应用程序将引发异常。我真正想要的是一种数据类型,它隐式地将值限制在 0-1 或 Min-Max 或类似范围内的任何值
注意:我知道所有数据类型都有最大分辨率。我也知道,在大多数情况下,整数 0-100 可能足够接近 - 但是正确的方法是什么?
【问题讨论】: