gpt4 book ai didi

c - 在 C 中将十进制数添加为字符串

转载 作者:太空狗 更新时间:2023-10-29 15:08:46 26 4
gpt4 key购买 nike

所以我了解了如何对以字符串表示的整数执行计算,然后将结果打印为字符串。但是我不知道如何用字符串中表示的数字中的小数来做同样的事情。

下面是我如何处理整数。这部分代码将两个整数相加:

int answer = 0;
char str1[100];
int count = 0;
int total = 0;
int k = 0;
int diff = 0;

if (ele == ele2) {
for (k = strlen(op1) - 1; k > -1; k--) {
if ((strspn(operand, "+") == strlen(operand))) {
answer = (op1[k] - '0') + (op2[k] - '0');
} else if ((strspn(operand, "-") == strlen(operand))) {
answer = (op1[k] - '0') - (op2[k] - '0');
}

total += (pow(10, count) * answer);
count++;
}
sprintf(str1, "%d", total);
printf("Answer: %s ", str1);
}

输出

// 12 + 14
Answer: 26 // Answer given as a string

例子

12.2 + 14.5 // Three strings
Answer: 16.7 // Answer as string

当前尝试:

for (k = strlen(argv[1]) - 1; k > -1; k--) {
if (argv[1][k] == '.') {
dec = k;
} else {
answer = (argv[1][k] - '0') + (argv[3][k] - '0');
total += (pow(10, count) * answer);
count++;
}


}

// needs to be converted to a long?
// ele is the length of the operand
total = total / pow(10, ele - dec);

sprintf(str1, "%d", total);
printf("Answer: %s ", str1);

最佳答案

首先分享一个简单的算法(并假设您添加的整数函数工作正常)。

十进制数基本上是由“.”分隔的两个整数。

  • 确定“.”的位置并捕获整数的两侧作为integerPart,decimalPart
  • 获取小数部分的一个注意事项是所有小数部分的长度应该相同,如果不相同,则在后缀中添加“0”。
  • 添加整数部分,添加小数部分并处理小数部分的进位。

所以,

12.2 + 14.95   
= (12 + 14) (20 + 95)
= 26 115
= 26+1 15
= 27.15

关于c - 在 C 中将十进制数添加为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40650293/

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