我想在我的代码中包含一个函数来计算百分比。
在Php中,它是:
function percent(a,b){
return a/b*100;
}
在目标C中,我不知道。我试过了:
-(void)percent(a,b){
return a/b*100;
}
但是有2个错误。你能解释一下如何让它发挥作用吗?
谢谢你的帮助
答案 0 :(得分:2)
方法的定义语法与您习惯的语法略有不同:
- (float)percentWithA:(float)a dividedByB:(float)b
{
return a / b * 100;
}
参数在整个方法调用中“散布”。例如,此方法的名称为percentWithA:dividedByB:
。但是,您不需要像此调用一样明确。例如,您可以执行此操作:
- (float)percent:(float)a :(float)b { /* ... */ }
但它没有提供太多背景信息。
答案 1 :(得分:1)
您也可以这样做,使用C函数:
// in your .h
float percent(float a, float b);
// in your .m or .c
float percent(float a, float b)
{
return a / b * 100.0f;
}
或者,如果您使用的是宏:
// remember to always enclose macros in parentheses
#define percent(a, b) (a / b * 100.0f)
你会这样称呼它:
percent(50, 20);
答案 2 :(得分:1)
更正确的方法是:
- (float)precentageByDevidingFloat:(float)a byFloat:(float)b {
float returnValue = 0;
if (b != 0)
returnValue = a / b * 100;
return returnValue;
}
这样你就可以使用更正确的命名约定,实际上你会返回一个浮点数和你的保险箱,以防有人在B中给你一个值0。 (应该由文件涵盖)
答案 3 :(得分:0)
Objective-C使用一个奇怪的约定,即将参数名称作为方法名称的一部分,因此参数声明嵌入在方法名称中。
-(float)percentOf:(float)a over:(float)b
{
return (a/b) * 100.0;
}
括号中的第一个类型定义了返回类型,参数来自冒号,并且它们的类型也在括号中。