我有两个整数变量,结果必须存储在float中。我想连接两个整数变量并将它们存储为浮点值。让我知道一个联接两个整数值的方法。
实施例。 我没有功能调用。我在哪里存储从KEY到VARIABLE lat_int和lat_float收到的值。我希望在全球范围内将两种产品合并为一种全球性的商品。
void setCustomCoordinate(int cord_para[])
{
lat_int=cord_para[0];
lat_float=cord_para[1];
long_int=cord_para[2];
long_float=cord_para[3];
latitude=(lat_int+lat_float)/100);
longitude=(long_int+long_float)/100));
}
答案 0 :(得分:6)
这不是一个真正的代码问题,而是一个基本的算术问题:
如何转换两个值,以便
a
和b
给a.b
?
只需使用加法和乘法:
int a=10;
int b=20;
float r=0;
r = a+(b/100f);
不需要操作员这样做(它需要两条CPU指令来计算这个值,调用一个函数会更贵);并且它不被称为“连接”,而是加法和乘法(再次)。
如果你想要连接,你应该用“10”和“20”作为你用点连接的字符串,例如,这是一个字符串连接:
printf("%s.%s", "10", "20");
答案 1 :(得分:2)
使用
math.h中
int nDigits = floor(log10(abs(the_integer))) + 1;
然后你可以得到10的力量:
int power = pow(10,nDigits);
最后:
float result = a + b / power;
答案 2 :(得分:1)
不需要额外的库文件(例如math.h),可以像这样创建concat
函数......
float concat(int a, int b){
float c;
c = (float)b;
while( c > 1.0f ) c *= 0.1f; //moving the decimal point (.) to left most
c = (float)a + c;
return c;
}
答案 3 :(得分:0)
您可以将此整数值转换为float。
例如,将 10视为10.00 ,将 20视为00.20
然后执行加法操作a + b,这将给你输出10.20
答案 4 :(得分:0)
你可以将b除以10 ^ p,其中p是它的字符串长度,然后将a加到b 例 如果a是1000而b是323那么b长度= 3 所以你将b除以1000它将是0.323,然后只需将a加到b
答案 5 :(得分:0)
如果你真的只想连接两个整数,你可以使用c ++ stringstream来实现这一点,例如:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
int a = 4;
int b = 5;
ostringstream oss;
oss << a << "." << b;
istringstream iss(oss.str());
float c;
iss >> c;
cout << c << endl;
return 0;
}
Output: 4.5
答案 6 :(得分:0)
您还可以使用printf()
和strtof()
:
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
int a = 10;
int b = 20;
float f;
char *buf;
if (asprintf(&buf, "%d.%d", a, b) > 0) {
f = strtof(buf, NULL);
printf("%f\n", f);
free(buf);
}
exit(EXIT_SUCCESS);
}