-1

我怎样才能将有理数1.2423445.314转换成整数12423445314获得小数位数?

4

3 回答 3

1

转换为字符串

找到小数点的位置。

从上述字符串的长度中减去它,得到小数位数。

然后从字符串中取出点。

于 2012-12-17T22:37:40.463 回答
0
int i=0;
float a = 1.24234;

for(i; i<20; i++){
    float b=pow(10,i);
    if((a*b)%10==0)
        break;
}
int c = pow(10,i-1);
int result = a*c;

我认为这段代码会对你有所帮助。

于 2012-12-17T22:42:27.197 回答
0

如果您的号码是 WD (Whole.Decimal)

要获得 W,只需执行 (int)WD 要获得 D,您可以执行 WD - (int) WD

现在你的整数和小数点分开了。要计算出 W 上的 x10 乘数,请继续将 D 除以 10,直到得到小于 10 的结果。

现在:WxN+D(其中 N 是你除以 10 的次数)

注意:我没有写代码作为例子,因为我觉得这可能是一个家庭作业。此外,如果您使用的时间很长(即:精确的浮点数),这将不成立,并且可能会溢出。在实施这样的事情之前检查你的界限。

于 2012-12-17T23:29:33.720 回答