gpt4 book ai didi

c - 在 C 中声明一个只有 2 个小数点的变量

转载 作者:行者123 更新时间:2023-12-02 05:48:53 26 4
gpt4 key购买 nike

我正在尝试声明一个只有小数点后一位的变量 eLon,这样如果我有代码:

elon=359.8
printf("eLon = %f\n",eLon);

输出将是

eLon = 359.8

但是我得到的输出是:

eLon = 359.7999999.

我怎么知道我可以修改 printf 使其成为:

printf(eLon is %0.1f\n",eLon);

得到想要的结果。这不是我想要做的。我只希望变量本身只有一位小数,这样它等于 359.8 而不是 359.7999999,因为这对我进行的任何计算都是至关重要的。你知道我应该如何修改我的代码以获得想要的结果吗?我尝试按照其他查询中的建议进行操作,但它不起作用,例如代码:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main()
{
int endLonn;
float endLon,eLon;
endLon=359.8;
endLonn=359.8*10;
printf("%d is endLonn\n",endLonn);
eLon= endLonn / 10;
printf("elon is %f\n",eLon);
}

给我输出:

elon is 359.00000000

同样,这也不是我要找的。我要 elon 是 359.8。如果您能帮我调整我的代码以获得理想的结果,那就太好了。感谢您的宝贵时间。

最佳答案

与其尝试欺骗 double 或 float 和 printf,不如使用定点运算。在您的示例的特定情况下,您将以其原始值的 0.1s 表示变量:

int in_10s;
in_10s=3598;
printf("My fixed point variable "
"represents %d.%01d value\n",
in_10s/10, abs(in_10s % 10));

在n位小数的一般情况下,printf的格式应该是%d.%0nd,其中n=log_10(scaling_factor^-1),比例因子解释为here .

关于c - 在 C 中声明一个只有 2 个小数点的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247782/

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