多くの数学と計算を行うアプリを構築しています。ラベルに表示されるスライダー値があり、それらの値を関数で使用して最終値を取得する必要があります。私はこれらのスライダー値を持っています (数値は、数式をテストして機能するかどうかを確認するためのユーザー入力として持っているものです):
Ageslider=20, weightslider=144, feetslider=5,inchesslider=9.03.
最初に重量、フィート、およびインチをメートル法に変換して、全体的な式にプラグインする必要がありますが、ユーザーはそれらの値を確認する必要はありません。それらをメトリックに変換する式は次のとおりです。
weightslider/2.2, feetslider*12*2.54, inchesslider*2.54.
全体的な式は次のとおりです。
66.473+5.0033*((feetslider*12.2.54)+(inchesslider*2.54))+13.7516*(weightslider/2.2)-6.755*ageslider
または簡略化すると、元の式は次のようになります。
66.473+5.0033*(height in cm)+13.7516*(weight in kg)-6.755*age
数式を入力すると
(66.473+5.0033*((feetslider*12.2.54)+(inchesslider*2.54))+13.7516*(weightslider/2.2)-6.755*ageslider)
次に、プログラムを実行し、プログラムでテスト番号を使用します。最終的な値を必要な値に等しくすることができません。計算式を Excel に入力し、正しい演算順序で計算機を実行して get を取得し1708.7373
ました。プログラムで実行すると、 が表示され1747.7
ます。
次に、式のスライダー値の前に (float) を入れてみたところ、プログラムは次のようになりました1718.67
。次に、スライダー値の前に (double) を入れてみましたが、プログラムは次のようになりました: 1689.62
. 私が使用しているxcodeからコピーされた実際のコードは次のとおりです。
label.text = [[NSString alloc] initWithFormat:@"%.2f",66.473+(5.0033*((feetslider.value*12*2.54)+(inchesslider.value*2.54)))+(13.7516*(weightslider.value/2.2))-(6.755*ageslider.value)];
また、警告が表示されます。代入は、キャストなしで整数からポインターを作成します。その意味がわかりません。
誰かが私を助けてください、私は正しい答えを得て警告を取り除くために数式を変更しようとして何時間もこれに固執してきましたが、私は一生それを得ることができません!!!
ありがとう!
アップデート!!ここに私が今持っている正確なコードがありますが、まだ正しい答えが出ていません。プログラムを実行すると、「割り当てにより、キャストなしで整数からポインターが作成されます」というエラーが引き続き表示されます。「if(malebutton = Yes)」の行に表示されます。
-(IBAction)malebutton{ if (malebutton = YES) {
//Intermediate values
float totalWeight;
totalWeight = weightslider.value*.45454545;
float heightFeetToCM;
heightFeetToCM =feetslider.value*12*2.54;
float heightInchesToCM;
heightInchesToCM = inchesslider.value*2.54;
float totalHeight;
totalHeight = heightFeetToCM + heightInchesToCM;
//Final Component Values
float calculatedHeight;
calculatedHeight = 5.0033*totalHeight;
float calculatedWeight;
calculatedWeight = 13.7516*totalWeight;
float calculatedAge;
calculatedAge = 6.755*ageslider.value;
//Total Value
float finalValue;
finalValue = 66.473 + calculatedHeight + calculatedWeight - calculatedAge;
totalcaloriesburnedlabel.text = [[NSString alloc] initWithFormat:@"%.2f",finalValue];
更新 2;
スライダーをラベルに接続する方法は次のとおりです。フォーマットは、それぞれに表示した小数点以下の桁数を除いて、すべて同じです。
-(IBAction)changeLabelFeet {
feetLabel.text = [[NSString alloc] initWithFormat: @"%.0f",feetSlider.value];
}