int s = 1e9;
1e9
的类型是什么,它有多精确? (是否正好等于1000000000?)
如果可能,将值/变量的类型打印到 stdout
会很有用。
最佳答案
1e9
是一个 double
,在 IEEE 浮点表示法中具有精确表示。 C++ 标准不强制要求 IEEE float 。
s
是一个 int
,因此 double
值将自动转换为 int
。这如何发生在某种程度上取决于实现。在如今的大多数机器上,这种转换意味着 s
将被赋予初始值 1000000000。
关于c++ - 科学记数法的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296955/