C语言中给浮点数赋值问题

2025-04-13 02:38:51
推荐回答(4个)
回答1:

float D=0.5; // 这叫声明和初始化。
愿意写 float D=0.5f; 也可以。
常数 0.5 默认 处理成 double 型。
0.5f 规定 它 是 float 型.
其实这不是什么大问题。相对C语言中别的问题,这个可以完全忽略。
----------------------------
float D; // 这叫声明。
D=0.5; // 这叫赋值语句。
-------------------------
如果你前面有过 typedef float float32
例如:
typedef float float32;
main(){
float32 D=0.5; // 允许 用 float32 作为 自定义类型
printf("%f\n",D);
}

回答2:

在C语言中,有单精度浮点数(float)和双精度浮点数(double),给浮点数变量赋值,请见如下例子:

  1. 单精度浮点数变量的赋值:

    float f=0.5f;//0.5f表明该常数为单精度数。

    也可以写成

    float f=0.5;//0.5表明该常数为双精度浮点数,当然,也可赋值于一个单精度变量。

  2. 双精度浮点数变量的赋值:

    double d=0.5;//给一个双精度浮点数赋予0.5。

    double d=0.5;/*给一个双精度浮点数赋予一个单精度数,会自动将单精度数转换为一个双精度数。*/

回答3:

四舍误入了
printf("%0.10lf",n);
这样0.10
意思是保留小数点后10位
种种原因很那解释
这应该与二进制转换有关
十进制小数有时无法完全转换为二进制
你可以查一下进制转换的资料就明白了
所以浮点型的后几位就不准确了........

回答4:

没什么不对啊?你觉得哪里有错?