在c/++中将float转换为两个int

Ang*_*.47 0 c++ casting

NOT A DUPLICATE:上面提到的重复,将小数部分返回到float,而不是int

鉴于我有一个浮点数1.495如何将其转换为,1495给出两个int变量rd.哪里:

int r == 1;
int d == 495;
Run Code Online (Sandbox Code Playgroud)

我可以使用第一个

int r = (int)(1.495f-1l);
Run Code Online (Sandbox Code Playgroud)

但我不确定如何投射或获得d价值.

注意我不确定小数部分的范围,小数部分可以是.49.495.4959

在值为.0495或者.00495我可以返回的值为495的情况下,我最初没有想到这个.

谢谢

Jam*_*ess 5

float f = 1.5;
int r = f;
int d = (f-r)*1000;
Run Code Online (Sandbox Code Playgroud)

更新:

需要明确的是,虽然这回答了最初措辞中的海报问题,但它并没有解决现在给出的问题.

  • d取决于浮点电流范围.它可能会随时改变,你不知道要乘以什么.它可以是1.500或1.500000或1.5000000 (3认同)