首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >格式化NSDecimalNumber问题

格式化NSDecimalNumber问题
EN

Stack Overflow用户
提问于 2012-11-24 19:21:28
回答 4查看 588关注 0票数 1

我试着用简单的格式创建NSDecimalNumber,比如: 123.00,点后总是有两个小数位。我尝试使用NSFormatter和许多其他方法,比如从字符串转换float,然后从该字符串创建NSDecimalNumber,但都不起作用。问题是,我只需要这种格式的NSDecimalNumber,而不需要NSString或其他任何格式。谢谢你的建议,保罗

EN

回答 4

Stack Overflow用户

发布于 2012-11-24 19:27:54

你可以从这里得到一些想法。

代码语言:javascript
运行
复制
float num = 123.1254546;
NSString *str = [NSString stringWithFormat:@"%.2f",num];
NSLog(@"%.2f %@",num,str);
票数 0
EN

Stack Overflow用户

发布于 2012-11-24 19:37:22

我认为你只需要像下面这样做两次类型转换操作

代码语言:javascript
运行
复制
   float value = 123.562;
   int myDigit = value;

它在myDigit变量中给出值123

代码语言:javascript
运行
复制
 NSLog(@"MyDigit in Decimal = %d",myDigit);

输出是十进制形式的MyDigit = 123

现在,如果您想要类似于123.000的输出,那么只需如下所示

代码语言:javascript
运行
复制
 float valueWithZiro = myDigit;

 NSLog(@"MyDigit with 000  == %3f",valueWithZiro);

输出是十进制形式的MyDigit = 123.000

票数 0
EN

Stack Overflow用户

发布于 2014-05-15 05:01:27

与NSNumber一样,NSDecimalNumber也不能包含格式信息。对象结构根本不支持它。它代表一个数字,而不是数字的显示方式。

您可以将其转换为格式化的NSString (您说您并不需要它)。但你不能照你说的做。

您可以使用NSNumberFormatter将其转换为格式化的NSString。它是一个对象,允许您指定小数和千位分隔符、要显示的小数位数、货币符号等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13540705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档