gpt4 book ai didi

c - 我需要有关 float 的帮助

转载 作者:行者123 更新时间:2023-12-04 06:14:29 24 4
gpt4 key购买 nike

我对编程非常陌生,参加了我的第一门计算机科学类(class)。我正在编写一个程序,出于某种原因,每当我尝试计算任何操作的浮点值时,它只会导致 0.00000。如果有人可以帮助我,我将不胜感激!

    #include <stdio.h>

int main(void)
{
int numa, numb;
int sum, halffirst, halfsecond, quotient, remainder;


// get input
printf("\nPlease enter two integers: ");
scanf("%d%d", &numa, &numb);

// calculate dimensions
sum = numa + numb;
halffirst = (double)numa / 2.0;
halfsecond = numb / 2;
quotient = numa / numb;
remainder = numa % numb;

// display report
printf("\n%20s%20s", "Description", "Data");
printf("\n%20s%20s", "-----------", "----");
printf("\n%20s%20d", "Sum", sum );
printf("\n%20s%20lf", "Half (1st #)", halffirst);
printf("\n%20s%20d", "Half (2nd #)", halfsecond);
printf("\n%20s%20lf", "Quotient", quotient);
printf("\n%20s%20d", "Remainder", remainder);

// format and finish
printf("\n\n");
return 0;
}

最佳答案

那是因为您使用的是 int数据类型为整数。对整数执行的操作往往会产生整数(被截断),例如:

int nom = 6;
int den = 10;
float frac = nom / den;

会给你一个零值,因为算术是在整数上完成的,并且只在最后转换为浮点数(在损坏完成后)。

你可以通过强制转换来解决这个问题,例如:
float frac = (float)nom / (float)den;

这将在除法之前从整数中生成浮点值。

但是,您最好预先为所有值使用浮点数。 float (单精度)或 double ( double )是你所追求的。 double 值有更多……嗯,精度,这意味着它们可以存储更多的数字和更大范围的数字。类作业, float应该没问题。

关于c - 我需要有关 float 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7424794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com