我現在正確confused.com和我缺乏編程知識顯然顯示...所以有時間在專業人士的電話! (作爲一個方面說明我會感到我已經學到了很多東西已經從你所有)做 - 雖然現在我在邏輯上陷入了
的問題
我有一個小應用程序,需要一個虛擬牆的寬度,然後請求對瓷磚尺寸,然後計算出可以適合多少瓦片,並且寬度之間沒有間隙,如果瓦片不合適,用戶會看到兩個按鈕「grow wall」或「shrink wall」,在此示例中,代碼如下if爲了種植牆壁。然後它應該試着以0.1的增量找出牆壁需要的寬度,才能讓瓷磚完全貼合。它需要能夠處理雙值,如牆寬12.5英尺,寬度和長度13.6,這就是爲什麼我使用雙打而不是整數
我有以下代碼(但認爲我正在簡化這種方式太多)
無論哪種方式,它不工作我已經花了半天時間讀播放等,但無法弄清楚,我該怎麼走上錯誤的道路還是我正確的軌道上
一如往常任何建議將熱烈收到
先生H
{
double wWdth;
double tWdth;
double wdivision = 3;
NSString *growstring = [NSString stringWithFormat:@"%@,%@", self.wallWidth.text, self.tileWidth.text];
NSArray *wall = [growstring componentsSeparatedByString:@","];
NSLog(@"%@",wall);
wWdth = [[wall objectAtIndex:0]doubleValue];
blkWdth = [[wall objectAtIndex:1]doubleValue];
do
{
NSLog(@" INSIDE WHILE %.f",wdivision);
wWdth = wWdth;
wWdth += 0.1;
wdivision = fmod(qWdth,blkWdth);
} while (wdivision ==! 0);
NSString* newWdth = [NSString stringWithFormat:@"%.f", wWdth];
self.wallWidth.text=newWdth;
}
即使你需要'13.6'等等的維度,當你試圖讓事情變得合適時,用整數來思考是一個非常好的主意。因此,可能需要1/100英寸的「單位」 - 然後13.6'= 12 * 13.6 = 163.2英寸= 16320「釐米 - 英寸」。現在你不會遇到雙打討厭的問題,不能精確地代表「合理的」數字,比如「13.6」(事實上,只有以'5'結尾的小數纔有可能被精確表示)。可能不是你唯一的問題,但與整數工作肯定會有所幫助! – Floris
@弗洛里斯:同意。 –
我只能說謝謝,你對減少數字的清晰看法使得數學更容易處理謝謝(我已經改變了數學) –