取两个数字到一个数字

时间:2013-11-30 08:15:41

标签: c math

我有两个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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

B是一个整数,将整数除以另一个整数(此处为10000)将始终给出一个整数,这就是您获得意外结果的原因。将10000类型int更改为10000.0double类型)将解决此问题。似乎1000010000.0是数学定义的整数,但两者在编程语言中都是不同的类型,前者类型为int,后者类型为double

C = A + (B/ 1000000.0);  

C = A + ((double)B/ 1000000); 

获得预期结果。

答案 1 :(得分:2)

试试这样:

C = A + (B/ 1000000.0);

即,将分母设为double,这样当整数除以整数时,它就不会像你得到的那样返回奇怪的结果。

注意: -

  • 整数/整数=整数
  • 整数/双数=双
  • Double / Integer = Double
  • Double / Double = Double