浮点类型保存为exp

时间:2016-03-19 15:05:39

标签: c++ double decimal rounding

我做了一些计算,结果是 0.000137 * 0.000137 = 0.000000018769

我将答案保存在float y

但似乎保存为1.88788682e-008

我希望将其保存为0.000000018769

我尝试了类型double但得到了相同的答案

int main()
{
 float y= 0.000137*0.000137;

return 0;

}
调试时,

y出现在手表中,为0.000137 * 0.000137

2 个答案:

答案 0 :(得分:1)

您无法控制浮点数存储的方式(无论如何这几乎无关紧要)。你可以控制它们的打印方式。如果您想在没有科学记数法的情况下打印出来,可以使用std::fixed来获取它:

int main() {
    float y = 0.000137*0.000137;
    std::cout << std::fixed << std::setprecision(12) << y << "\n";
}

结果:

0.000000018769

答案 1 :(得分:-1)

始终保存相等且这些数字相等

如果您使用cout进行打印,请查看有关cout格式化页面的参考资料

http://www.cplusplus.com/reference/ios/fixed/