当使用float vs doubles时,我想比较表达式的相对精度和绝对精度(即(x+y)/k)。 我怎么能做到呢?
什么类型满足此表达式的下列要求:
相对公差:1E-05
绝对公差:1E-08
示例函数:
<type> calc(<type> x, <type> y, <type> k){
return (x+y)/k;
}
什么类型符合下列要求。。。
无(至少不是浮点类型)。
您的要求不够具体,因此无法满足所有可能的输入。 考虑x=1e100
,y=1e20
和k=1
。 由于float
和double
都不是80位,结果是1E100
,绝对误差和1E20
一样大!
我假设您误解了实际的需求,因为只有一个任意精度类型才能确保对绝对精度的这样的需求。 不double
和不float
。