Tag: floating point

将int和const int转换为float时的结果不同

有人能够解释为什么int和const int在转换为float并在浮点数学中使用时给出不同的结果? 例如,参见这段代码: int _tmain(int argc, _TCHAR* argv[]) { int x = 1000; const int y = 1000; float fx = (float) x; float fy = (float) y; printf(“(int = 1000) * 0.3f = %4.10f \n”, 0.3f*x); printf(“(const int = 1000) * 0.3f = %4.10f \n”, 0.3f*y); printf(“(float)(int = 1000) * 0.3f = %4.10f \n”, […]

在C中将双精度转换为整数时处理溢出

今天,我注意到当我将一个大于最大可能整数的double转换为整数时,我得到-2147483648。 类似地,当我转换一个小于最小可能整数的double时,我也得到-2147483648。 是否为所有平台定义了此行为? 在/溢出下检测此问题的最佳方法是什么? 在演员之前将if语句放入min和max int是最佳解决方案吗?

将int作为float打印时printf的行为是什么?

我在windows7上使用dev cpp来编译我的代码。 int d = 0x12; char* e = (char*)&d; printf(“%d %d\n”, sizeof (int), sizeof (float)); printf(“%p %p\n”, &d, (float*)&d); printf(“%p %p %p %p %p\n”, &d, &e[0], &e[1], &e[2], &e[3]); printf(” %d | %x | %#1x | %#1x | %#1x |%p\n”, d, e[0], e[1], e[2], e[3], &e[0]); getchar(); 4 4 0028FF40 0028FF40 0028FF40 0028FF40 0028FF41 […]