我有问题。我需要得到两个数字并将它们加在一起,其中一个是另一个的小数点。例如:
double number1 = 20;
double number2 = 142;
我需要将这些数字加在一起得到20.142。有没有办法做到这一点?
由于
答案 0 :(得分:5)
简单的解决方案:
double result = [[NSString stringWithFormat:@"%i.%i", (int)number1, (int)number2] doubleValue];
答案 1 :(得分:4)
你可以使用数学。(Dun dun DUNNNNNNN!)
double number3 = number1 + (number2 / 1000);
问题就变成了;你如何确定除以第二个数字的10的幂?
肯定有很多方法可以做到这一点。就在我的脑海中,你可以运行一个循环,它不断增加10的幂,直到它大于number2的当前值。
如果您正在处理number1的负数,那么您需要添加 if 语句,以查看该数字是否为< 0.如果是这样,你会想要减去而不是添加。
如果你正在处理number2的负数,那么......那真是太傻了。
答案 2 :(得分:2)
一种天真的方式:
double res, number1 = 20, number2 = 142;
while (number2 >= 1) {
number2 /= 10;
}
res = number1 + number2;
答案 3 :(得分:-1)
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
,{{1}将是finalnum
)1.757
必须是正面的