我在Apple文档中找不到这个:这里的数字后面的"f"表示什么?这是来自C还是Objective-C?不将它添加到常数中有什么区别吗?
CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f);
Run Code Online (Sandbox Code Playgroud)
你能解释一下为什么我不会写:
CGRect frame = CGRectMake(0, 0, 320, 50);
Run Code Online (Sandbox Code Playgroud) f在将常量分配给 a 时,将an应用于浮点常量似乎没有什么区别float。
int main(void) {
float f;
// 1 2345678901234567
f = 3.1415926535897932;
printf("%.6a %.8f pi 3.1415926535897932\n", f, f);
f = 3.1415926535897932f; // v
printf("%.6a %.8f pi 3.1415926535897932f\n", f, f);
}
Run Code Online (Sandbox Code Playgroud)
有或没有f,值是一样的
// value value code
0x1.921fb6p+1 3.14159274 pi 3.1415926535897932
0x1.921fb6p+1 3.14159274 pi 3.1415926535897932f
Run Code Online (Sandbox Code Playgroud)
为什么要使用f?
我问,因为我使用的是Box2D库,它主要调用float参数.虽然我看到很多使用0.00f格式的示例代码,但 我不太确定它与普通旧0.00之间是否存在实际差异.我会被通过不附加额外以后伤害自己˚F?这是速度的事吗?当其他人不愿意时,是否存在需要f加数的某种含义?
TL;博士?我为什么要使用0.00f而不是0.00?
所以,我正在阅读C编程.我预订了这个练习:
Write a program which asks the user to enter a dollars-and-cents amount, then displays the amount with 5% added?
方案:
#include <stdio.h>
int main(void) {
float original_amount;
printf("Enter an amount: ");
scanf("%f", &original_amount);
printf("With tax added: $%.2f\n", original_amount * 1.05f);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道是什么.3f意思(在...之后应该有3位数字),但是什么1.05f意思?
#ifdef DOUBLE_PRECISION_COMPUTE
#define MAKE_PRECISE(N) ...
#endif
// if not defined, leave as it is. MAKE_PRECISE(N) (N)
Run Code Online (Sandbox Code Playgroud)
上面的宏(用右边的redifiniton替换"......")可以进行下面的操作吗?
double PI=MAKE_PRECISE(3.14159265359f);
Run Code Online (Sandbox Code Playgroud)
变
double PI=3.14159265359;
double area= MAKE_PRECISE(3.14159265359f)*r*r;
Run Code Online (Sandbox Code Playgroud)
变
double area= 3.14159265359*r*r;
Run Code Online (Sandbox Code Playgroud)