C++中,如何将LONG型转换为float和double型?

原因是这样的longa,b;intc;c=1000*a/b但是因为c是int型所以有误差想先来个float或者double型的d使得d=a/b然后再c=1000*d这样误... 原因是这样的
long a,b;
int c;
c=1000*a/b
但是因为c是int型
所以有误差
想先来个float或者double型的d
使得d=a/b
然后再c=1000*d
这样误差就少一些...
能提供好方法的朋友我会追加的

简单问题搞死人啊
展开
 我来答
百度网友d6715de
2009-02-03
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
long a,b;
int c;
c=1000*(float)(a/b);
这样a/b得出的结果就会按浮点数给出,而不会舍去尾数,与设d效果相同。
PS:c++中的强制类型转换函数是 (T)a ,函数返回一个转换后的T型变量,其中T表示要转换的类型,a是变量。如要把long型的temp转换成double型,并赋给number,只需 number=(double)temp; 即可。
yumenstar
推荐于2018-03-13 · TA获得超过946个赞
知道小有建树答主
回答量:538
采纳率:0%
帮助的人:402万
展开全部
long a,b;
int c;
float d;

d=(double)1000*a/b;
这样不用你的c了,或者你把c定义成double类型吧
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BlueWanderer
2009-02-03 · TA获得超过9209个赞
知道大有可为答主
回答量:5673
采纳率:83%
帮助的人:2012万
展开全部
实际处理中一般直接写成(int)(1000.0*a/b)就可以
计算1000.0*a的时候因为1000.0是double所以a也自动转换成double,1000.0*a的结果于是也是个double
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sxc212321
2009-02-03 · TA获得超过214个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:140万
展开全部
c=int((double)1000*(double)a/(double)b); 这种方法叫现式强制转化。
不推荐使用。

如果要准确可以声明的时候就把这3个变量声明成float型的吖。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuyezhiyu
2009-02-03
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
因为a b是long 所以a/b这个表达式的结果一定是long型的,所以问题不在c上。要准确,必须a b 是float 或者 double型的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式