clwn.net
当前位置:首页 >> DouBlE和FloAt的转换 >>

DouBlE和FloAt的转换

float是7个有效数字,double是16个有效数字.把double转成float就会截断多出的小数你有可能有这种代码吧.float x=0.5;x是float 而0.5在vc中默认是double,所以会提醒你一下.

可以用判断语句啊,if() {} else {}来处理,如果只是在其中某处要用到,只需要用强制转化就可以了,强制转化主要是高级向低级的转换,如double向float的转换,低级向高级不用强制转化.

是转换成Float类型,而不是double.后面不加F的float a = 10.1;这种,浮点数10.1自动认为是double类型,但是定义的float,所以会有类型转换.

对于int型,可以调用函数itoa.char*itoa(int value,char*string,int radix);功能为将任意类型的数字转换为字符串.int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等.float和double类型没有特

float f = 1.2f; double d = Double.parseDouble(String.valueOf(f)) ; System.out.println(d); 直接转换会设计到精度问题,所以需要借助字符串 保证不丢失数据 温馨提示:亲 答题不易解题更难 您的支持是我继续答题的动力 麻烦采纳 谢谢

直接把程序中的 double 换成 float 就可以了.很简单

可能是楼主换成double的同时, 忘记换格式符了 float的格式符是%f 而double的格式符是%lf 所以程序应该改成 #include <stdio.h>main(){ double x,y;printf("请输入x的值\n");scanf("%lf",&x); if (x<1) y=x; if (x>=1&&x<10) y=x*2-1; else y=x*3-11;printf("y=%lf\n",y);}

<p>3.14默认是在double形式存在的,这是规定,就像法律规定,犯了什么罪,罚多少万元的款一样,是规定,只能死记,没有道理而言.</p> <p>r是float型,转换为double型则有可能会丢失数据,但是编译器并不能完全确定到底会不会丢失数

大哥,float是%f,double是%lf.

float f=3.14;double d=(double)f; //强制类型转换,将f的值转换为double型后赋给d.

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com