我到处搜寻,但没有找到与我类似的情况。. 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)这也是我将分数的答案转换为小数的方法..它也很好用:
- (double) convertToNum
{
if (denominator != 0)
return (double) numerator / denominator;
else
return NAN;
再说一遍,清楚地说...我怎样才能让Objective C看到应用程序中输入的小数,并将答案正确地显示为小数..我搞砸了,因为我开始这个主要是一个分数计算器?感谢一个从 BASIC 转到 Objective C 的菜鸟
编辑 4/27/12 * ** (Stack 的新手 - 但请阅读我在下面的评论.. 我正在寻找为什么我不能将小数读入我的程序......我尝试从整数(其中我知道不会工作)和双打和浮动,但是当我把这一切都作为双打运行时,我得到的只是用户输入的 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 的双倍,并在以后变成分子/分母..(这可能是我的问题,但它不应该很难,但我很难用 BOOL 或其他东西说,嘿..这不是分数,它是小数 - 所以让这样做 - 请帮忙!!快疯了!