提问人:MarioM 提问时间:11/10/2021 更新时间:11/10/2021 访问量:115
使用长双精度 [duplicate] 时输出的预期值错误
Expected value wrong with output with using long double [duplicate]
问:
我正在研究我的 C++ 知识,我期待一个我没有收到的值。这是我的代码
#include <iostream>
#include <float.h>
using std:: cout;
using std:: endl;
using std:: fixed;
float a = 10.0 / 3;
a = a * 10000000000000000000;
double b = 10.0 / 3;
b = b * 10000000000000000000;
long double c = 10.0 / 3;
c = c * 10000000000000000000;
cout << fixed << a << endl; // I get 33333333268354826240.000000
cout << fixed << b << endl; // I get 33333333333333336240.000000
cout << fixed << c << endl; // I get 33333333333333336240.000000 but this should be more accurate
cout << FLT_DIG << endl; // I am getting 6
cout << DBL_DIG << endl; // I am getting 15
cout << LDBL_DIG << endl; // I am getting 15 but this should be 18
那么我是不是做错了什么?我遵循了tutoiral是如何做到的,但我不知道为什么。因此,如果有帮助,我正在使用Microsoft Visual Studio 2019。
答: 暂无答案
评论
cout << sizeof(long double)
8
long double
double
b
c
double
10.0 / 3
long double
c
long double c = 10.0L / 3;