【问题标题】:Add floating point numbers 23.54 and 33.22 with just integral value like 23+33将浮点数 23.54 和 33.22 与整数值相加,例如 23+33
【发布时间】:2021-10-09 17:53:38
【问题描述】:

有两个浮点数 23.54 和 33.22 必须让程序将它们与左侧整数值相加,例如 23+33=56。

这是我尝试过的代码:

【问题讨论】:

  • 请将代码发布为formatted text,而不是截图
  • 对不起兄弟,我是这个网站和编程的新手,所以我不知道如何使用它

标签: c floating-point


【解决方案1】:
int sum;
sum=(int)num1+(int)num2;
printf("%d",sum);

printf("%d",(int)num1+(int)num2);

num1 的数据类型是浮点数,我使用 (int) 类型转换为整数类型。
由于我们对数据类型进行类型转换,这称为显式类型转换!

【讨论】:

  • 没有解释的代码不是一个好的答案。 Stack Overflow 不是代码编写服务;它旨在成为问题和答案的持久存储库,以便提供知识。
  • 我是否需要详细说明@EricPostpischil?
  • 想一想人们需要知道什么才能理解为什么会这样。演员表有什么作用? “类型转换为整数类型”是什么意思?如果您有 23.54 并且您将其“转换”(该词是什么意思?)它为“整数类型”,您会得到什么? 23.54不是整数,那怎么把它变成整数类型呢?
【解决方案2】:

另一种选择是定义一个明确命名所用类型的函数,例如:

static int int_sum(int a, int b) {
  return a + b;
}

可以用作:

#include <stdio.h>
int main()
{
    float a, b;
    if (scanf("%f%f", &a, &b) == 2) {
        printf("%d\n", int_sum(a, b));
    }
    return 0;
}

请注意,最好在使用 scanf 之前检查它们是否成功解析了它应该解析的值。如果用户未提供有效输入,您可能希望返回其他内容,或者打印错误消息。

【讨论】:

    【解决方案3】:
    #include <stdio.h>
    
    int main(){
    
    
    
    float sum;
    float num1;  
    float num2;
    printf("first number:");
    scanf("%f",&num1);
    printf("second number:");
    scanf("%f",&num2);
    sum=(int)num1+int(num2);
    printf("sum is %.2f",sum);
    }
    

    【讨论】:

    • 没有解释的代码不是一个好的答案。 Stack Overflow 不是代码编写服务;它旨在成为问题和答案的持久存储库,以便提供知识。
    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多