我知道int
只能存储非十进制数字,但是在这种情况下:
int n=3.14
它将仅存储3
,但是我的问题是.14
将会如何?它会丢失在内存中,被丢弃还是被暂时存储吗?
答案 0 :(得分:2)
浮点数的小数部分在分配给整数类型时会被截断。
来自C++ Standard:
浮点类型的prvalue可以转换为整数类型的prvalue。转换被截断;即,小数部分被丢弃。如果无法在目标类型中表示截断的值,则该行为未定义。 [注意:如果目标类型为
bool
,请参见conv.bool。 — 尾注]
答案 1 :(得分:0)
将浮点值分配给整数类型时,小数点将被截断。
所以在您的示例中
int n = 3.14; // will result in n == 3
答案 2 :(得分:0)
小数部分将完全消失。通过将整数变量分配给float变量然后打印float可以看到这一点。如果经过舍入(对于小整数这不是问题),它将打印为3.00 ....
答案 3 :(得分:-2)
如果您已经将浮点数存储为int,则该点被“切分”后的部分也将在对象中发生,即不属于该存储类型的数据就不会记录在该对象/变量中。