c++11 double precision



进行如下计算:

double result = 58/10;

将结果:5.799999999999999998

我知道c++会在进一步计算或打印时将其四舍五入,但我需要将输出与不发生四舍五入的地方进行比较,所以我不能让四舍五入发生,因为这可能会导致输出中其他地方的差异。

是否有办法提高这样的计算精度和58/10的结果5.8?

5.8不能精确地用浮点数表示。如果您要处理小数点后的2位精度,例如,如果您需要存储货币值,请将其存储为"580";(例如,580美分),并在打印时自行格式化。

printf("%d.%02d", n / 100, n % 100);

或者将小数存储为分数:

struct Fraction {
int numerator;
int denominator;
};
int main() {
Fraction f(29, 5);
}

相关内容

  • 没有找到相关文章

最新更新