Not*_*ter 3 c floating-point printf division output
我正在学习 C 编程语言,在 Xcode 13.x 中,当我写下以下内容时:
float a = 3 / 2;
float b = 1 / 3;
printf("3 divided by 2 as a float is %f, 1 divided by 3 as a float is %f\n", a, b);
Run Code Online (Sandbox Code Playgroud)
控制台会喊出这样的内容:
3 divided by 2 as a float is 1.000000, 1 divided by 3 as a float is 0.000000
我希望它会显示1.500000和0.333333,但为什么不显示呢?我确信解决方案是显而易见且简单的,但基本的谷歌搜索/搜索没有帮助。
我试图#include float.h认为这会有帮助,但没有运气。
我盲目地错过了什么?
谢谢
显然,您试图将除法的结果存储到 a 中float,但浮点数也包括整数。您实际上正在执行整数除法,因为在这两种情况下,您的两项都是整数(没有小数部分)。除法进行四舍五入(结果没有小数部分),并分配给您的变量。
如何纠正这个问题?尝试将小数部分添加到两个数字中的至少一个。例如:
float a = 3.0/2;
Run Code Online (Sandbox Code Playgroud)
这应该可以做到。