我试着用简单的格式创建NSDecimalNumber,比如: 123.00,点后总是有两个小数位。我尝试使用NSFormatter和许多其他方法,比如从字符串转换float,然后从该字符串创建NSDecimalNumber,但都不起作用。问题是,我只需要这种格式的NSDecimalNumber,而不需要NSString或其他任何格式。谢谢你的建议,保罗
发布于 2012-11-24 19:27:54
你可以从这里得到一些想法。
float num = 123.1254546;
NSString *str = [NSString stringWithFormat:@"%.2f",num];
NSLog(@"%.2f %@",num,str);
发布于 2012-11-24 19:37:22
我认为你只需要像下面这样做两次类型转换操作
float value = 123.562;
int myDigit = value;
它在myDigit变量中给出值123
NSLog(@"MyDigit in Decimal = %d",myDigit);
输出是十进制形式的MyDigit = 123
现在,如果您想要类似于123.000的输出,那么只需如下所示
float valueWithZiro = myDigit;
NSLog(@"MyDigit with 000 == %3f",valueWithZiro);
输出是十进制形式的MyDigit = 123.000
发布于 2014-05-15 05:01:27
与NSNumber一样,NSDecimalNumber也不能包含格式信息。对象结构根本不支持它。它代表一个数字,而不是数字的显示方式。
您可以将其转换为格式化的NSString (您说您并不需要它)。但你不能照你说的做。
您可以使用NSNumberFormatter将其转换为格式化的NSString。它是一个对象,允许您指定小数和千位分隔符、要显示的小数位数、货币符号等。
https://stackoverflow.com/questions/13540705
复制相似问题