Ios 在目标c中以数字格式在字典中添加浮点值
当我们在字典中添加int变量时,我们需要将其转换为NSNumber格式Ios 在目标c中以数字格式在字典中添加浮点值,ios,objective-c,iphone,double,nsdictionary,Ios,Objective C,Iphone,Double,Nsdictionary,当我们在字典中添加int变量时,我们需要将其转换为NSNumber格式 int f3 = 32; int f4 = 35; NSNumber* num3 = [NSNumber numberWithInt:f3]; NSNumber* num4 = [NSNumber numberWithInt:f4]; NSDictionary *params1 = @{@"num3": num3, @"num4" : num4}; 当我们看到字典的值时 num3 = 32; num4 = 35; 此
int f3 = 32;
int f4 = 35;
NSNumber* num3 = [NSNumber numberWithInt:f3];
NSNumber* num4 = [NSNumber numberWithInt:f4];
NSDictionary *params1 = @{@"num3": num3, @"num4" : num4};
当我们看到字典的值时
num3 = 32;
num4 = 35;
此输出在字典中
但是当我们在字典中添加浮点值时
float f1 = 12.123456;
float f2 = 15.123456;
NSNumber* num1 = [NSNumber numberWithFloat:f1];
NSNumber* num2 = [NSNumber numberWithFloat:f2];
NSDictionary *params = @{@"num1": num1, @"num2" : num2};
我在字典中得到的值是字符串而不是数字切碎,我在双引号中得到的值
num1 = "12.12346";
num2 = "15.12346";
请任何人帮助我。。。我希望字典中的浮点值是数字形式的。对于上述问题,在转换为数字或Dict时,您必须使用
双精度
请检查以下代码:
float f1 = 12.123456;
float f2 = 15.123456;
double f3 = 12.123456;
double f4 = 15.123456;
NSNumber* num1 = [NSNumber numberWithFloat:f1];
NSNumber* num2 = [NSNumber numberWithFloat:f2];
NSNumber* num3 = [NSNumber numberWithDouble:f3];
NSNumber* num4 = [NSNumber numberWithDouble:f4];
NSDictionary *params = @{@"num1": num1, @"num2" : num2,@"num3": num3, @"num4" : num4};
要以浮点形式获取值,请执行以下操作:
NSNumber *outNum1 = params[@"num1"];
NSLog(@"Float value = %f",outNum1.floatValue);
从上面的日志记录:
{
num1 = "12.12346";
num2 = "15.12346";
num3 = "12.123456";
num4 = "15.123456";
}
希望这会有帮助 值存储为NSNumber格式。这只是NSLog
的打印表示。您可以像这样访问值
if ([[params objectForKey:@"num1"] isKindOfClass:[NSNumber class]]){
NSLog(@"Stored as Number");
}
else{
NSLog(@"Stored as String");
}
输出为:
Stored as Number
你说得对
float f1 = 12.123456;
float f2 = 15.123456;
NSNumber* num1 = [NSNumber numberWithFloat:f1];
NSNumber* num2 = [NSNumber numberWithFloat:f2];
NSDictionary *params = @{@"num1": num1, @"num2" : num2};
NSLog(@"%@",[params valueForKey:@"num1"]);
请从字典中获取值,然后您将得到您的答案
这看起来像字符串,但值是float
请查看图片:
实际上,我需要dict中的值,不带双引号,而不是字符串格式,我需要数字值。。我不能得到那个…:(它在日志中以双引号显示,但实际值是数字双引号&数字浮点数,您可以访问,就像我在回答中更新的一样。是的,但我需要将浮点数存储在dict中。您以正确的方式将数字添加到dict中。当您尝试使用NSLog
打印时,数字中会添加双引号。这是NSLog的本质。请参阅以下链接:[1]:
float f1 = 12.123456;
float f2 = 15.123456;
int yourDecimalLimit=1000000.0;
NSNumber* num1 = @((int)(f1*yourDecimalLimit)/yourDecimalLimit);
NSNumber* num2 = @((int)(f2*yourDecimalLimit)/yourDecimalLimit);
NSDictionary *params = @{@"num1": num1, @"num2" : num2};
output
{
num1 = "12.123456";
num2 = "15.123456";
}