【发布时间】:2016-06-22 01:52:04
【问题描述】:
我有以下代码:
float test = 1/(10^(15));
std::cout << "test: " << test << std::endl;
但我得到“test: 0”作为值。我想要“测试:0.000000000000001”。
我如何做到这一点?
【问题讨论】:
-
你可能想尝试 double 而不是 float stackoverflow.com/questions/28045787/…
-
1/(10^(15))--^并没有像你想象的那样做。 -
@PaulMcKenzie 可能是因为该网站建议将“c”作为标签,即使您已经编写并标记了 c++
-
@SnoozeTime:这不是问题......请记住,预期的指数是
15的幅度 - 完全在float支持的 -128..127 范围内 - 而数字的不完全可表示,float中的 23 位将做得很好。 -
@chema989 不,1e15 是
double。没有integer literal 格式,中间有e。 en.cppreference.com/w/cpp/language/floating_literal
标签: c++ floating-point floating-accuracy