String to double
String to double
希望你能帮我解决这个“小”问题。我想将一个字符串转换为double/float类型。
NSString *stringValue = @"1235"; priceLabel.text = [NSString stringWithFormat:@"%d",[stringValue doubleValue]/(double)100.00];
我希望这将把priceLabel设置为12.35,但我得到了一些奇怪的长字符串,对我来说毫无意义。
我尝试过:
priceLabel.text = [NSString stringWithFormat:@"%d",[stringValue intValue]/(double)100.00]; priceLabel.text = [NSString stringWithFormat:@"%d",[stringValue doubleValue]/100];
但都没有成功。
问题:将字符串转换为双精度浮点数时出现了什么问题?如何解决?
原因:在给定的代码中,字符串被转换为双精度浮点数时,使用了错误的格式化符号。代码中使用的是`%f`来显示浮点数值,但实际上应该使用`%lf`来正确地将字符串转换为双精度浮点数。
解决方法:将代码中的格式化符号`%f`替换为`%lf`,以便正确地将字符串转换为双精度浮点数。
文章内容如下:
在给定的代码中,我们需要将一个字符串转换为双精度浮点数,并显示出来。代码中使用了`%f`格式化符号来显示浮点数值,但实际上这是错误的。正确的格式化符号应该是`%lf`。
NSString *stringValue = @"1235"; NSString *str = [NSString stringWithFormat:@"%.2f",[stringValue doubleValue]/(double)100.00]; NSLog(@"str : %@ \n\n",s); priceLabel.text = str;
运行以上代码后,输出结果为`str : 12.35`。然而,这并不是我们期望得到的结果。实际上,代码中的错误在于使用了错误的格式化符号`%f`。
为了解决这个问题,我们需要将代码中的`%f`替换为`%lf`,以便正确地将字符串转换为双精度浮点数。修改后的代码如下:
NSString *stringValue = @"1235"; NSString *str = [NSString stringWithFormat:@"%.2lf",[stringValue doubleValue]/(double)100.00]; NSLog(@"str : %@ \n\n",s); priceLabel.text = str;
通过使用正确的格式化符号`%lf`,我们成功地将字符串转换为双精度浮点数,并将结果显示为`12.35`。
请注意,本文所提供的解决方法是基于给定代码的特定情况。在其他情况下,解决方法可能会有所不同。如果您对此问题有任何疑问,请参考这里的讨论链接,以获得更多的帮助。