负的浮点数和正的浮点数的加法运算代码实现
时间: 2024-03-23 19:36:50 浏览: 14
以下是负的浮点数和正的浮点数的加法运算的代码实现:
```python
def add_floats(num1, num2):
# 判断num1和num2的符号
if num1 >= 0 and num2 >= 0:
# 两个正数相加
return num1 + num2
elif num1 < 0 and num2 < 0:
# 两个负数相加
return -1 * (abs(num1) + abs(num2))
else:
# 一个正数和一个负数相加
return num1 + num2
```
在这个函数中,我们首先判断num1和num2的符号,如果两个数都是正数,则直接相加返回结果;如果两个数都是负数,则先将它们的绝对值相加,再将结果取相反数返回;如果一个数是正数,一个数是负数,则直接相加返回结果。
相关问题
C语言代码实现浮点数加减运算
下面是一个简单的 C 语言代码实现浮点数加减运算的例子:
```c
#include <stdio.h>
int main()
{
float a, b, c;
int op;
printf("Enter 2 numbers: ");
scanf("%f %f", &a, &b);
printf("Enter operation (1 for +, 2 for -): ");
scanf("%d", &op);
if (op == 1) {
c = a + b;
printf("%f + %f = %f\n", a, b, c);
} else if (op == 2) {
c = a - b;
printf("%f - %f = %f\n", a, b, c);
} else {
printf("Invalid operation!\n");
}
return 0;
}
```
这个程序会提示用户输入两个浮点数和要执行的运算,然后根据用户选择执行加法或减法,并输出结果。需要注意的是,浮点数在计算机中的表示是有误差的,因此在比较浮点数时应该使用一些特殊的函数,例如 `fabs` 和 `epsilon`。
c语言浮点数大精度运算代码
下面是一个使用 C 语言实现的浮点数大精度运算的简单示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 1000
char* addFloat(char* num1, char* num2) {
int len1 = strlen(num1), len2 = strlen(num2);
int max_len = len1 > len2 ? len1 : len2;
char *result = (char*)malloc(max_len + 2);
memset(result, '0', max_len + 2);
int carry = 0, sum;
int i = len1 - 1, j = len2 - 1, k = max_len;
while (i >= 0 || j >= 0) {
int a = (i >= 0) ? num1[i--] - '0' : 0;
int b = (j >= 0) ? num2[j--] - '0' : 0;
sum = a + b + carry;
result[k--] = sum % 10 + '0';
carry = sum / 10;
}
if (carry) {
result[k] = carry + '0';
}
return result + k + 1;
}
int main() {
char num1[MAX_SIZE], num2[MAX_SIZE];
printf("请输入第一个浮点数:");
scanf("%s", num1);
printf("请输入第二个浮点数:");
scanf("%s", num2);
char* result = addFloat(num1, num2);
printf("相加的结果为:%s\n", result);
free(result);
return 0;
}
```
以上代码是一个简单的大精度浮点数加法运算示例。用户可以先输入两个浮点数,然后调用 `addFloat` 函数进行加法运算,并输出结果。由于 C 语言中浮点数的精度问题,此处采用了字符串表示方式来进行运算,以达到大精度计算的效果。