落叶L 发表于 2022-8-1 21:15:12

为什么在宏定义里运算后得出的结果是错的

本帖最后由 落叶L 于 2022-8-1 21:24 编辑

#include<stdio.h>

#define N 3.7/2
#define M 8/2
#define X 9/2

int main()
{
    printf(“%.2f”, (N*2+M+X));
   
    return 0;
}

wp231957 发表于 2022-8-1 21:16:27

9/2=4? 不是4.5?

落叶L 发表于 2022-8-1 21:22:22

本帖最后由 落叶L 于 2022-8-1 21:25 编辑

打印结果是11.70

wp231957 发表于 2022-8-1 21:27:21

落叶L 发表于 2022-8-1 21:22
打印结果是11.70

3.7+4+4没毛病

落叶L 发表于 2022-8-1 21:27:42

本帖最后由 落叶L 于 2022-8-1 21:28 编辑

wp231957 发表于 2022-8-1 21:16
9/2=4? 不是4.5?

对呀,是9/2出问题了吗,为什么是4不是4.5,不知道为什么结果是11.70

wp231957 发表于 2022-8-1 21:28:52

落叶L 发表于 2022-8-1 21:27
对呀,是9/2出问题了吗,不知道为什么结果是11.70

c语言里,两个整数相除,结果一定是整数ok??

落叶L 发表于 2022-8-1 21:30:37

wp231957 发表于 2022-8-1 21:27
3.7+4+4没毛病

我懂了,整形的运算得到的也是整形,谢谢啦^_^
页: [1]
查看完整版本: 为什么在宏定义里运算后得出的结果是错的