任何人都可以解释%g和%f之间有什么区别。 我知道关于%0.2f,因为我知道它打印点2小数点后! 我试过这个代码...浮点值printf的意外输出10.1
int main()
{
float val = 10.0;
printf("<%g><%0.2g><%0.4g><%f><%0.2f>", val, val, val, val, val);
return 0;
}
//giving : <10><10><10><10.000000><10.00>
//If i give 10.1 instead!
int main()
{
float val = 10.1;
printf("<%g><%0.2g><%0.4g><%f><%0.2f>", val, val, val, val, val);
return 0;
}
//giving : <10.1><10><10.1><10.000000><10.00>
// How come here i got for %g --> 10.1
// %0.2g --> 10
// %0.4g --> 10.1
请有人澄清我!
简单:你的程序有UB,因为'main()'的签名不正确。 – 2013-08-03 16:26:47
H2CO3意味着你的程序有未定义的行为,因为main的声明不正确(应返回int而不是void)。 –
@ H2CO3,Nop!我也用int返回类型检查过它!我变得一样! – Omkar