- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要在模糊作业中保持粒度,所以我创建了一个接收参数的函数:
并返回一个具有正确粒度的新值。
这是我的功能:
public static double preserveGranularity(double granul, double value){
double integerValue= (double)(int)value;
if(granul == 1)
return integerValue;
double decimal = value - integerValue;
long factor = Math.round(decimal/granul);
return integerValue + granul*factor;
}
例子:
它适用于大多数值,但并非适用于所有值(例如:preserveGranularity(0.2, 0.57)=0.6000000000000001,它应该返回 0.6)
问候
附言对于我在这个问题上犯的任何错误,我很抱歉,这是我的第一个问题
最佳答案
您无法使用 double
实现此目的 - 因为它不够准确。double
不是实数。只有有限数量的位来表示它们 - 而那里有无限数量的实数(甚至有理数),因此这些舍入误差是意料之中的。
我想你在找BigDecimal
,它允许您根据需要控制粒度,例如使用其 round()
方法。
关于保留粒度的 Java 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540341/
我有 2 个事实表,每个表都有一个度量组,生产和生产订单。生产具有较低粒度的生产信息(在组件级别)生产订单具有较高级别的信息(具有抬头数量等的订单级别)。 我在 productionorderid 的
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我第一次尝试了解 Akka/Actors,并且对每个 Actor 职责的粒度有点困惑。 在我的应用程序中,有可以使用 WidgetRegistrar 注册/取消注册的 Widget。要向 Regist
我们一直在使用 MVP 模式和 Winforms,并取得了相当大的成功。然而,关于 MVP 总是弹出一个问题: 对于演示者来说,什么是好的粒度? 我的意思是:对于 Winforms,细粒度通常适用于用
我通常使用 git add -p 添加更改,而且很多时候有几个代码块的大块头,由空行分隔。 但是,git 不会进一步拆分 大块头,我不得不求助于手动编辑。 如何增加 hunk 的粒度,以便每个代码块都
例如,我看到 dumps.wikimedia.org/other/pagecounts-raw/,但那里没有特定国家/地区的数据... 最佳答案 据我所知,没有。出于明显的隐私原因,发布的页面查看统计
JavaScript 的源映射似乎通常不比 token 粒度更精细。 例如,identity-map uses token granularity . 我知道我看过其他例子,但不记得在哪里。 为什么我
我有这些目录: ./Tools ./ook/Tools. 我在 setup.cfg 中的 py.test 的 norecursedirs 选项中添加了 Tools。正如预期的那样,当 py.test
我正在使用这个 Accelerometer graph来自 Apple 并尝试转换他们的 G-force 代码以计算 +/- 128。 下图显示标签中的 x、y、z 值与图表上的输出不匹配:(请注意,
此问题围绕 Android 应用程序的架构展开。 在使用 LifeCycle 组件 ViewModel 时,最好是每个 fragment 一个 ViewModel 还是订阅 fragment 的父 A
我是一名优秀的程序员,十分优秀!