我有两个int值,我想组合成一个十进制数。所以例如,我有A = 1234和B = 323444.两者都是int,如果可能的话我不想改变它。
我想将它们合并到1234234233.323444。
我的初始方法是将b除以1e6并将其添加到A以获得我的值。 我分配了
int A = 1234234233;
int B = 323444;
double C;
A = 1234;
B = 323444;
C = A + (B/ 1000000);
printf("%.6f\n", C);
结果我得到了1234234233.000000。它绕过我的C,我不想要那样,因为我想要1234234233.323444
我该如何解决这个问题?
答案 0 :(得分:2)
B
是一个整数,将整数除以另一个整数(此处为10000
)将始终给出一个整数,这就是您获得意外结果的原因。将10000
类型int
更改为10000.0
(double
类型)将解决此问题。似乎10000
和10000.0
是数学定义的整数,但两者在编程语言中都是不同的类型,前者类型为int
,后者类型为double
。
C = A + (B/ 1000000.0);
或
C = A + ((double)B/ 1000000);
获得预期结果。
答案 1 :(得分:2)
试试这样:
C = A + (B/ 1000000.0);
即,将分母设为double,这样当整数除以整数时,它就不会像你得到的那样返回奇怪的结果。
注意: - 强>