我试图通过int在我的程序中划分两个s 来生成一个浮点数.这是我期望的:
1/120 = 0.00833
这是我正在使用的代码:
float a = 1 / 120;
Run Code Online (Sandbox Code Playgroud)
但它没有给我我期望的结果.当我打印出来时,我得到以下内容:
inf
Run Code Online (Sandbox Code Playgroud)
勿绮语*_*勿绮语 12
请执行下列操作
float a = 1./120.
Run Code Online (Sandbox Code Playgroud)
您需要指定要使用浮点数学.
有几种方法可以做到这一点:
如果您真的对分割两个常量感兴趣,可以通过使第一个常量为float(或double)来指定您想要浮点数学.所需要的只是一个小数点.
float a = 1./120;
Run Code Online (Sandbox Code Playgroud)
你不需要将第二个常量设为浮点数,尽管它不会伤害任何东西.
坦率地说,这很容易错过,所以我建议添加一个尾随零和一些间距.
float a = 1.0 / 120;
Run Code Online (Sandbox Code Playgroud)如果你真的想用整数变量进行数学运算,可以输入cast:
float a = (float)i/120;
Run Code Online (Sandbox Code Playgroud)float a = 1/120;
float b = 1.0/120;
float c = 1.0/120.0;
float d = 1.0f/120.0f;
NSLog(@"Value of A:%f B:%f C:%f D:%f",a,b,c,d);
Output: Value of A:0.000000 B:0.008333 C:0.008333 D:0.008333
Run Code Online (Sandbox Code Playgroud)
对于float变量a:int/int产生整数,您将其分配给float并将其打印为0.0000000
对于float变量b:float/int产生float,赋值为float并将其打印0.008333
对于float变量c:float/float产生float,所以0.008333
最后一个是更精确的浮动.以前的类型是double类型:所有浮点值都存储为double数据类型,除非值后跟'f'以专门指定float而不是double.
| 归档时间: |
|
| 查看次数: |
10614 次 |
| 最近记录: |