提问者:小点点

如何计算具有指定类型的表达式的相对精度和绝对精度


当使用float vs doubles时,我想比较表达式的相对精度和绝对精度(即(x+y)/k)。 我怎么能做到呢?

什么类型满足此表达式的下列要求:

相对公差:1E-05

绝对公差:1E-08

示例函数:

<type> calc(<type> x, <type> y, <type> k){
    return (x+y)/k;
}

共1个答案

匿名用户

什么类型符合下列要求。。。

无(至少不是浮点类型)。

您的要求不够具体,因此无法满足所有可能的输入。 考虑x=1e100y=1e20k=1。 由于floatdouble都不是80位,结果是1E100,绝对误差和1E20一样大!

我假设您误解了实际的需求,因为只有一个任意精度类型才能确保对绝对精度的这样的需求。 不double和不float