olivem55arlowe 发表于 2024-4-29 23:30

C语言如何实现“四舍五入”



float a = 23.456789;
        float b = 23.56789;
        int y;
        //scanf_s("%f", &x);
        y = round(a);
        printf("%d\n", y);
        y = round(b);
        printf("%d\n", y);

pentruman 发表于 2024-5-3 14:16

可以使用round()函数来实现“四舍五入”。

vivilyly 发表于 2024-5-3 15:21

round()函数来实现“四舍五入”。这个函数是C99标准库中的一部分,定义在math.h头文件中。

bartonalfred 发表于 2024-5-4 19:55

round函数返回的是一个double类型的值,所以我们需要将其转换为int类型才能打印出来。此外,round函数只能对double或float类型的数值进行四舍五入,不能对非数值类型的变量进行四舍五入。

uptown 发表于 2024-5-6 21:35

round()函数需要包含<math.h>头文件。

1988020566 发表于 2024-5-7 11:33

可以使用round()函数实现四舍五入。round()函数是C99标准中的数学库函数,需要包含<math.h>头文件。使用示例如下:

      
c

#include <stdio.h>
#include <math.h>

int main() {
    double num = 3.6;
    double result = round(num);
    printf("四舍五入后的结果为: %.0f
", result);
    return 0;
}

lzmm 发表于 2024-5-7 20:10

round()函数返回一个double类型的值,因此你应该使用double类型来接收它返回的结果。

hudi008 发表于 2024-5-8 20:28

#include <stdio.h>
#include <math.h>

int main()
{
    double num = 3.14159;
    double rounded_num;

    // 四舍五入到最近的整数
    rounded_num = round(num);

    printf("原始数值: %f\n", num);
    printf("四舍五入后的数值: %f\n", rounded_num);

    return 0;
}

Henryko 发表于 2024-5-8 20:33

math适配单片机吗

updownq 发表于 2024-5-9 17:04

#include <stdio.h>
#include <math.h>

int main() {
    double num = 3.14159;
    int rounded_num = (int)round(num);// 强制类型转换

    printf("原始数字: %f\n", num);
    printf("四舍五入后的整数: %d\n", rounded_num);

    return 0;
}

deliahouse887 发表于 2024-5-9 21:34

#include <stdio.h>
#include <math.h>

int main() {
    double num = 3.14159;
    double rounded_num = round(num);

    printf("原始数字: %f\n", num);
    printf("四舍五入后的数字: %f\n", rounded_num);

    return 0;
}

timfordlare 发表于 2024-5-10 12:37

#include <stdio.h>

int my_round(double num) {
    if (num < 0.0) {
      return (int)(num - 0.5);
    } else {
      return (int)(num + 0.5);
    }
}

int main() {
    double num = 3.14159;
    int rounded_num = my_round(num);

    printf("原始数字: %f\n", num);
    printf("四舍五入后的整数: %d\n", rounded_num);

    return 0;
}

febgxu 发表于 2024-5-10 17:17

round()函数返回的是一个double类型的值,即使结果是一个整数。如果你需要一个整数结果,你可以将结果转换为整数类型

ulystronglll 发表于 2024-5-10 21:13

可以通过添加0.5然后取整的方式来实现四舍五入:
c
复制
double number = 3.14;
double roundedNumber = (number >= 0) ? (int)(number + 0.5) : (int)(number - 0.5);
printf("Rounded number: %f\n", roundedNumber);

phoenixwhite 发表于 2024-5-12 17:14

首先包含了<stdio.h>和<math.h>头文件。然后,我们定义了一个double类型的变量num,并将其初始化为3.6。接着,我们使用round函数对num进行四舍五入,并将结果存储在一个int类型的变量rounded_num中。最后,我们打印出四舍五入后的结果。

mmbs 发表于 2024-5-13 20:00

#include<stdio.h>

int custom_round(double num)
{
    return (int)(num >= 0 ? num + 0.5 : num - 0.5);
}

int main()
{
    double num1 = 3.5;
    double num2 = 7.4;
    double num3 = -2.6;

    printf("自定义四舍五入后的结果:\n");
    printf("num1: %d\n", custom_round(num1)); // 输出:4
    printf("num2: %d\n", custom_round(num2)); // 输出:7
    printf("num3: %d\n", custom_round(num3)); // 输出:-3

    return 0;
}

gouguoccc 发表于 2024-5-13 20:14

C语言标准库的随机数产生函数。

uiint 发表于 2024-5-14 11:21

round() 函数是C语言标准库中的一个函数,用于将给定的双精度浮点数四舍五入到最接近的整数。

LEDyyds 发表于 2024-5-14 13:37

直接用round函数

youtome 发表于 2024-5-14 15:24

可能需要使用更复杂的算法或库函数。
页: [1] 2
查看完整版本: C语言如何实现“四舍五入”