c - C语言中的除法

标签 c floating-point integer-arithmetic binary-operators

<分区>

大家好,希望你们一切顺利我是 C 语言的新手,我只需要问一个基本问题,即当我像这样在 C 中除数时:

#include<stdio.h>
main()
{
   float a = 15/4;
   printf("%.2f", a);
}

除法发生了,但答案以 3.00 的形式出现(这是不正确的,它没有计算余数) 但是当我这样编程时:

#include<stdio.h>
main()
{
   float a = 15;
   float b = 4;
   float res = a/b;
   printf("%.2f", res);
}

这个方法给了我正确的答案。所以我想问一下这两个程序的差异背后的原因,为什么第一种方法不起作用,为什么第二种方法起作用?

最佳答案

在这个表达式中

15/4

两个操作数都是整数类型(更准确地说是 int 类型)。于是进行整数运算。

例如,如果至少一个操作数具有浮点类型(float 或 double)

15/4.0

15/4.0f

然后结果将是一个 float (在 double 类型的第一个表达式和 float 类型的第二个表达式中)

在这个表达式中

a/b

两个操作数都具有浮点类型(float 类型)。所以结果也是一个 float 。

关于c - C语言中的除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69714576/

相关文章:

c - 与 libevent2 配对的 bufferevents 的问题

c++ - 我们可以假设以下任何一对浮点算术语句总是产生相同的结果吗?

php - 在 PHP 中解析时取消格式货币

floating-point - Erlang 和大数

javascript - JS 中的加法如何处理大数

c++ - 将 n 个对象分成 m 个集合的最简单方法,其中 m 不除 n?

rust - 通过列表向后循环时在 'attempt to subtract with overflow' 出现 panic

c - C中的内存消耗

c - DDD 运行时(?)错误

c - 在不使用 float 的情况下确定给定整数是否是 C 中斐波那契数列的元素