基态电子没脾气
C语言下float变量和int变量转换的问题

我定义int a

float b

a=b*1000

我输入b=0.12

输出的a=119

这是为什么?

t676009616
是指强制转换吗
展开Biu

是指强制转换吗??/

[查看全文]
天机阁主
这个啊实际上牵涉到了
展开Biu

啊哈,这个啊实际上牵涉到了。你的计算机体系架构对整形和浮点型的表示了。在计算机中对int和float的表示一般而言是不同的,int的表示是能够在通用计算器中,但是float有专门的浮点型寄存器,而且float和double的表示一般是近似的所以在转换成低精度的int时一般会有精度损失。至于详细的你可以看这个。

http://blog.csdn.net/xiaohan13916830/article/details/99038

[查看全文]
horizonless
是浮点的直接强制转换为整形的了吧
展开Biu

嘛`~是浮点的直接强制转换为整形的了吧??~

[查看全文]
天涯明月稻
橴陽花桾
展开Biu

橴陽花桾__ 发表于 2012-11-18 06:58

会有机会的... 我这个星期的作业就是这个、、、坑爹的条件 i作为变量 却是浮点.. ...

那是你们老师故意坑你们滴~~

[查看全文]
橴陽花桾__
天涯明月稻
展开Biu

天涯明月稻 发表于 2012-11-17 22:13

应该不会有人会用这个来做了判断条件吧~~

会有机会的... 我这个星期的作业就是这个、、、坑爹的条件 i作为变量 却是浮点..

[查看全文]
天涯明月稻
橴陽花桾
展开Biu

橴陽花桾__ 发表于 2012-11-17 22:09

0.0 Int 与 float 之间转换的话 永远达不到真值的。。所以在做if 之类的条件语句 要若是设定i ...

应该不会有人会用这个来做了判断条件吧~~

[查看全文]
橴陽花桾__
天涯明月稻
展开Biu

天涯明月稻 发表于 2012-11-17 21:20

是可以编译通过的,这个我试了下,结果与楼煮的一样~~~

0.0 Int 与 float 之间转换的话 永远达不到真值的。。所以在做if 之类的条件语句 要若是设定i<10 的话 要换成10.1

[查看全文]
天涯明月稻
橴陽花桾
展开Biu

橴陽花桾__ 发表于 2012-11-16 00:42

类型转换里面 涉及单精度浮点float和整型int运算 都要变成双精度double的。整型int要变成double 要经过 uns ...

是可以编译通过的,这个我试了下,结果与楼煮的一样~~~

[查看全文]