let e = Math.sin(Math.PI);
document.write(e) 表达式的结果是1.2246467991473532e-16,但是我想获取0,但是如果我使用 e = Math.sin(Math.PI+epsilon) epsilon是一个非常小的数字,如1e-10,则不要将表达式舍入为0。如果我使用Math.cos(Math.PI/2),它会给我6.123233995736766e-17,但我想要0 所以我想确保它每次都能给我准确的答案。
cfenv提供了API来控制C中浮点操作的舍入模式。具体来说,可能的控制标志包括FE_DOWNWARD和FE_UPWARD,它们分别负责向更小或更大的值进行舍入。但是,如果这些标志作为一个整体影响单个浮点操作或表达式,我会感到困惑。作为一个例子,让我们: fesetround(FE_UPWARD);
double res = c - a * tanh(b); 如果标志FE_UPWARD作为一个整体影响表达式,那么res将包含c -标志FE_UPWARD给出了整个浮点表达式的上界,还是只给