gpt4 book ai didi

c - 如何使用 double 中小数点右边的数字?

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:58 25 4
gpt4 key购买 nike

如果这个问题已经被问到,我深表歉意(我假设是因为这是一个相当简单的问题,而不是因为我没有首先尝试找到它!)。

我想做的是一次构建一个双数第一字符。左边的数字很简单,行 num = num * 10 + (c - '0');

/*num 是到目前为止构建的数字c 是添加的字符*/

但是然后做类似的事情

num = (double)((int)num) + ( (num%1)*10 + (c - '0') )/decDigits;//decDigits 是小数点右边的位数(包括新的)

不会工作,因为显然你不能在 double 上使用 % 运算符。

实现上述目标的正确方法是什么?

最佳答案

您是要将 double 转换为字符串,还是将字符串转换为 double ?它看起来像后者,我认为在这种情况下你根本不应该使用 % 运算符。从 0.1 开始,将每个数字的值乘以适合其位置的值。

不过用 C 语言更容易解释:

char c;
double result = 0.0;

/* The part before the decimal place */
while ((c = *s++) && c != '.') {
result = result * 10.0 + (c - '0');
}

/* The part after the decimal place */
if (c == '.') {
double m = 0.1;
s++;

while ((c = *s++)) {
result += m * (c - '0');
m *= 0.1;
}
}

关于c - 如何使用 double 中小数点右边的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22883357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com