我遇到問題。我需要得到兩個數字並將它們加在一起,使得一個數字是另一個數字的小數點。例如:將數字添加到小數點後面(Objective-c)
double number1 = 20;
double number2 = 142;
我需要將這些數字加起來得到20.142。有沒有辦法做到這一點?
感謝
我遇到問題。我需要得到兩個數字並將它們加在一起,使得一個數字是另一個數字的小數點。例如:將數字添加到小數點後面(Objective-c)
double number1 = 20;
double number2 = 142;
我需要將這些數字加起來得到20.142。有沒有辦法做到這一點?
感謝
bool negative = (number1 < 0.0);
if (negative)
number1 = 0 - number1;
while (number2 >= 1.0)
number2 = number2/10.0;
double finalnum = number1 + number2;
if (negative)
finalnum = 0 - finalnum;
這是相當簡單的。我們首先確定number1
是否爲負值,如果是,則將其設爲正值並設置一個布爾型標誌。然後我們繼續將number2
除以10.0
,直到它小於1.0
(這意味着它現在在[0, 1)
範圍內,假設它是正數)。然後我們只是將這兩個數字加起來,並將其存儲在finalnum
中,並且如果negative
是true
(YES
),則否定finalnum
。
該解決方案也可以使用基數爲10的對數來確定將number2
除以的數量,但最有可能需要更長的時間。
你也可以通過turning those numbers into const char*
or CFString
(Objective-C) strings and then concatenate them followed by an interpretation of the resulting string as a double
來解決這個問題,但是這會花費更長的時間。
有兩點需要說明此代碼:
number1
和number2
必須是整數(如果number1
是,比方說,1.5
和number2
是25.7
,finalnum
將1.757
)number2
必須爲正一個天真的方式:
double res, number1 = 20, number2 = 142;
while (number2 >= 1) {
number2 /= 10;
}
res = number1 + number2;
您可以使用數學。(頓頓DUNNNNNNN!)
double number3 = number1 + (number2/1000);
所以問題變得;你如何確定10分的第二個數字的能力?
確實有很多方法可以做到這一點。就在我頭頂,你可以運行一個循環,不斷增加10的功率,直到它大於當前的數值2。
如果你正在處理的NUMBER1負數,那麼你要添加一個如果語句來看看,如果數字是0 <如果是這樣,你會想減去而不是相加。
如果你正在處理number2的負數,那麼......這太愚蠢了。
簡單的解決方案:
double result = [[NSString stringWithFormat:@"%i.%i", (int)number1, (int)number2] doubleValue];
@BinyaminSharet要不要我給你預期的答案,如果142是負值? – CoreCode 2012-04-29 00:34:25
@CoreCode - 不,如果number2是-142,結果會如何? – MByD 2012-04-29 00:35:32
您可能想要編輯您的問題以指定您正在處理負數,併發布預期的輸出結果(如果number2爲負數)。這對number1是有意義的,但由於number2只是附加到小數點後面,所以沒有任何意義。 – BTownTKD 2012-04-29 00:42:10