iPhone开发中的十进制
我想知道你们中是否有人知道如何在iPhone应用程序中使用小数 我把它当作密码iPhone开发中的十进制,iphone,xcode,string,decimal,int,Iphone,Xcode,String,Decimal,Int,我想知道你们中是否有人知道如何在iPhone应用程序中使用小数 我把它当作密码 int a; int b; int c; a=.32; b=.18; c=a/b; NSString *cstring = [NSString stringWithFormat:@"%d", c]; NSLog(@"%@",cstring); NSLog应给出1.7777的重复值 但它只给出1。 我听说了一些关于NSDecimal的事情,并试图在苹果的参考资料中查找它,结果发现 有没有人知道我做错了什么,或者知道其
int a;
int b;
int c;
a=.32;
b=.18;
c=a/b;
NSString *cstring = [NSString stringWithFormat:@"%d", c];
NSLog(@"%@",cstring);
NSLog应给出1.7777的重复值
但它只给出1。
我听说了一些关于NSDecimal的事情,并试图在苹果的参考资料中查找它,结果发现
有没有人知道我做错了什么,或者知道其他一些有用的东西?问题是你的
a
、b
和c
被声明为int
s。整数的定义是整数。试试这个:
float a = 0.32, b = 0.18, c = a/b; NSLog(@"%f", c);
浮点数是像小数一样的浮点数。但是为什么要使用浮点数呢?为什么不使用实际小数(
NSDecimal
,如OP所述)?NSDecimal
是一个结构,要操作它们,必须使用许多C函数,而您可以正常地对浮点
进行加、减、乘和除,因为它是一种基本数据类型。在我看来,对类似的东西使用NSDecimal
s只不过是把它复杂化了。b
是一个int
,当您分配它时,.18
。它将被转换为0
。Atc=a/b代码>,您试图将数字除以0
,因此出现错误。您每天都会学到一些新东西!感谢他没有犯错误。结果是“1”。是的,我没有错,我发现是四舍五入。亚历克斯·桑德的漂浮物正是我需要的!谢谢大家!