【发布时间】:2020-09-10 19:06:15
【问题描述】:
我对 c 很陌生,但我必须为学校创建一个程序,为此,我需要知道一个数字中有多少个十进制数,但是当我尝试这个时,一堆随机数来自第 4 维和我不知道如何解决它,有人可以帮助我吗?
代码如下:
int main(void) {
float test = 1.567;
while (test != 0){
test = test * 10;
test = test - (int)test;
printf("%f\n",test);
}
}
编辑: 我在 Windows 10 上运行,我正在使用 repl.it 来编程和运行它。 这是我得到的输出
0.670000
0.700001
0.000008
0.000076
0.000763
0.007629
0.076294
0.762939
0.629395
0.293945
0.939453
0.394531
0.945312
0.453125
0.531250
0.312500
0.125000
0.250000
0.500000
0.000000
编辑 2: 任务是我们必须创建一个程序,您必须在其中输入金额,它会告诉您需要多少 2 欧元硬币、1 欧元硬币等。因为您不能有 4.63454 欧元我想确保您只能输入 2 个十进制数字,否则会引发错误。所以 TLDR:你通过键盘输入数字,但同样的事情发生了。
【问题讨论】:
-
什么“一堆随机数”?你在什么操作系统上运行?你用的是什么编译器?
-
请在你的问题中显示你得到的输出。
-
浮点变量不存储精确的小数位数。如果输入应该来自用户,那么我建议输入一个字符串并对其进行分析。
-
标准
printf格式%f仅打印 6 位数字。如果你使用例如printf("%.30f\n",test);你会看到即使你的初始数字也没有确切的值。 -
@WeatherVane 如何对字符串进行计算?
标签: c math floating-point