我是一个心痛的人,想要放弃。我们只想说我要添加1,302.22和“.22”部分,不显示。下一个货币我加“44.55”和五十五美分将不会出现。如何解决这个问题而不会让我头疼“.00”?
double currency = [Amount1.text doubleValue] + [Amount2.text doubleValue];
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithInt:currency]];
Currency.text = [NSString stringWithFormat:@"%@",numberAsString];
答案 0 :(得分:3)
我怀疑问题出在这里:
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithInt:currency]];
[NSNumber numberWithInt:currency] 从整数值创建NSNumber对象。您传入的整数值为currency
。但是,货币的类型是双倍的。
想到double
的简单方法是考虑具有小数点的数字。想到integer
的简单方法是考虑一个没有小数点的数字。您可以通过添加或删除小数点在概念上进行转换。
由于您正在将double传递给期望和整数的方法,因此您将被截断。
例如:当您将其转换为int时,双1035.55
变为1035
。
尝试将numberWithInt
更改为numberWithDouble
并查看您是否有更好的运气。
另外,不要放弃。我们都去过那里:D
答案 1 :(得分:1)
您可以压缩代码:
double currency = [Amount1.text doubleValue] + [Amount2.text doubleValue];
Currency.text = [NSString stringWithFormat:@"%f", currency];
不要放弃,你会到达那里:)