c - jeo=(1/(1+十年)); 没有给我准确的答案
问题描述
int decade;
float jeo;
PRINT("Enter Decade point =\r\n");
scanf("%d",&decade);
print_decimal(decade);
PRINT("\r\n");
jeo=(1/(1+decade));
PRINT("Decade point =");
print_decimal(jeo);//my function for showing floating point number.
PRINT("\r\n");
我已经在 ARM 控制器的 IAR 嵌入式工作台软件中编写了这段代码,但它没有给我准确的答案,谁能告诉我为什么?“当我输入 3 时,它给了我 0 答案”。
解决方案
您只是在进行计算,integer
然后分配给一个float
值。这将删除小数点后的数字。
尝试这个:
jeo=(1.0/(1.0+decade));
推荐阅读
- c# - 在 EF Core 3 中使用反射会引发错误
- python - 了解 Django 继承模板
- ionic3 - ionic 3 - registerBackButtonAction - 无法获取活动推送页面
- icalendar - iCalendar 在该月的第二个星期二之前的 x 天重复规则
- javascript - 如何通过人工审核修复这些漏洞?
- java - 通过Java将超过300MB的大文件上传到azure blob存储
- python - 有没有办法使用漂亮的汤来选择特定的标签?
- asp.net-core - 自定义验证属性不适用于自定义标签助手,仅适用于静态 html
- php - PHP:使数字ID适应单词
- typescript - 从 .gql 文件中命名导出多个 graphql 操作