我到处搜寻,并没有发现类似于我的情况.Xcode / Objective C新手,我正在整理一个双重目的(分数/小数)计算器应用程序。我已经在分数上发现了一些好东西,并让它们正确计算。然而,小数是一个不同的故事。我可以用它来表达:
-(IBAction) pressDecimal
{
NSRange range = [display.text rangeOfString:@"."];
if ( range.location == NSNotFound ) {
display.text = [display.text stringByAppendingString:@"."];
}
或者这个:
-(IBAction) pressDecimal
{
[displayString appendString: @"."];
display.text = displayString;
}
后者效果很好,可以在计算器上显示它。我尝试将其作为一个插槽,一个双重读取,我似乎无法正确读取它...这是我如何得到数字:
- (void) workNums: (int) nums
{
currentNumber = currentNumber * 10 + nums;
[displayString appendString:
[NSString stringWithFormat: @"%i", nums]];
display.text = displayString;
}
//uses tags from attribute inspector (decimal tagged 10)
-(IBAction)pressNum:(UIButton *)sendIT
{
int nums = sendIT.tag;
[self workNums: nums];
}
我到处寻找,尝试从花车换成双打(当我和它们一起玩时,我可以让它显示0.00')这里也是我将ANSWER转换为DECIMAL的方法。太:
- (double) convertToNum
{
if (denominator != 0)
return (double) numerator / denominator;
else
return NAN;
再次,干净地陈述......我怎样才能让Objective C看到应用程序中输入的小数,并将答案正确显示为十进制..我搞砸了因为我开始这个主要是一个分数计算器?感谢一位从BASIC搬到Objective C的菜鸟
编辑4/27/12 * ** (Stack的新功能 - 但请在下面阅读我的评论..我想找出为什么我不能在我的程序中读取小数...我尝试从int(我知道不会工作)和双打并且浮动,但是当我以双打运行时,我得到的是用户输入的0.00:
-(IBAction)pressNum:(UIButton *)sendIT
{
int nums = sendIT.tag;
[self workNums: nums];
}
- (void) workNums: (int) nums
{
currentNumber = currentNumber * 10 + nums;
[displayString appendString:
[NSString stringWithFormat: @"%i", nums]];
display.text = displayString;
}
所以目标是能够计算用户输入的十进制数...对if / else情况的任何建议,因为这些数字在累加器中构建/和currentNumber的double,并且稍后变为分子/分母下线...(这可能是我的问题,但它应该不难,但我很难,使用BOOL或其他东西说,嘿..这不是一个分数,它是一个小数 - 所以我们这样做 - 请帮助!!坚持!
答案 0 :(得分:0)
我可能认为这比现在简单得多,但是:如果你在@"3.14"
中已经有displayString
之类的字符串,那么你可以将它直接转换为双精度数字:
double doubleValue = [displayString doubleValue];
这不足以获得双值并执行计算吗?