社区
数据结构与算法
帖子详情
如何将double转换成int?
Sco_field
2006-11-03 10:28:35
比如double数据: 2.370420e+2 ,-2.470420e-5,...如何转变成 int数据 2370420 ,
-2470420,...呢?
要求是不要过多的使用while 或if等过多占用时间的语句.
谢谢
...全文
3563
19
打赏
收藏
如何将double转换成int?
比如double数据: 2.370420e+2 ,-2.470420e-5,...如何转变成 int数据 2370420 , -2470420,...呢? 要求是不要过多的使用while 或if等过多占用时间的语句. 谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kvci
2006-11-03
打赏
举报
回复
sscanf( str_double, "%[^.]", buf);
sscanf( str_double, "%*[^.].%[^e]", b);
strcat(buf,b);
sscanf(buf,"%ld",&num);
C++也一样
结果保存在num里
Kvci
2006-11-03
打赏
举报
回复
#include "stdio.h"
#include "conio.h"
#include "string.h"
int main()
{
long num;
char buf[20],b[20];
char *s="-32.47720e0-95";
sscanf( s , "%[^.]", buf);
sscanf( s, "%*[^.].%[^e]", b);
strcat(buf,b);
sscanf(buf,"%ld",&num);
printf("%d\n",num);
return(0);
}
Sco_field
2006-11-03
打赏
举报
回复
可有C++的代码?
可另外加分
double FileData[1];
char *str_double;
while(InFile >> FileData[0]) //从文件读取double数据
{
str_double=(char*)FileData;
//此处转换......
}
谢谢!
Kvci
2006-11-03
打赏
举报
回复
char buf[20],b[20];
char *s="-32.4720e-5";
sscanf( s , "%[^.]", buf);
sscanf( s, "%*[^.].%[^e][^+][^-][^2]", b);
printf( "%s%s", buf,b);
Sco_field
2006-11-03
打赏
举报
回复
先用循环找到e的位置,然后根据e后面两位的数来改变小数点的问题,以为是string,所以很容易改,改好了后就用recursion来转换成double,不用while,太麻烦。为了符合题目要求用recursion方便。最后直接把double 改成int
--------------
你的意思是用string类型获取文件中的double类型数据,得到e的位置后再转换成 double类类型,再把double强制转换成int?
不过利用string获取double数据再反变换时,可能会导致数据出错
qt_pixie
2006-11-03
打赏
举报
回复
先用循环找到e的位置,然后根据e后面两位的数来改变小数点的问题,以为是string,所以很容易改,改好了后就用recursion来转换成double,不用while,太麻烦。为了符合题目要求用recursion方便。最后直接把double 改成int
Sco_field
2006-11-03
打赏
举报
回复
你在什么里面?
用什么语言?
Excel?
---------------
VC++6.0里面
谢谢!
Sco_field
2006-11-03
打赏
举报
回复
比如double数据: 2.370420e+2 ,-2.470420e-5,...如何转变成 int数据 2370420 ,
-2470420,...呢?
要求是不要过多的使用while 或if等过多占用时间的语句.
------------------------
2.370420e+2 ,-2.470420e-5 这些数据是保存在文件中,利用double类型读取到FileData[0]变量中 得到的数据是237.0420,-0.00002470420,然后想通过对FileData[0]变量作变换转换成int 类型2370420,-2470420
-------------------------
我觉得首先要提出e后面的指数比如i,然后再根据指数大小对数据进行加权处理比如乘以pow(10,j),条件是i+j=6
,但是具体代码写不好
-----------------------
谢谢!
Kvci
2006-11-03
打赏
举报
回复
你在什么里面?
用什么语言?
Excel?
Sco_field
2006-11-03
打赏
举报
回复
那你的意思是去掉e后面的,把前面的当整数?
---------
对~该怎么弄呢?
qt_pixie
2006-11-03
打赏
举报
回复
你可以用recursion来把string转换为double,在此之前先使用一个if 和while循环来把科学记数方式转换成一般记数方式。然后直接转换成int
Kvci
2006-11-03
打赏
举报
回复
2.370420e+2应该是237啊
Kvci
2006-11-03
打赏
举报
回复
那你的意思是去掉e后面的,把前面的当整数?
那很简单啊
Sco_field
2006-11-03
打赏
举报
回复
2.370420e+2的int数据 是2370420?
还有可能溢出
----------------
对,我只要2370420,不会溢出
Sco_field
2006-11-03
打赏
举报
回复
我觉得首先要提出e后面的指数比如i,然后再根据指数大小对数据进行加权处理比如乘以pow(10,j),条件是i+j=6
,但是具体代码写不好
Kvci
2006-11-03
打赏
举报
回复
2.370420e+2的int数据 是2370420?
还有可能溢出
Sco_field
2006-11-03
打赏
举报
回复
2.370420e+2 ,-2.470420e-5 这些数据是保存在文件中,利用double类型读取到FileData[0]变量中,然后想通过对FileData[0]变量作变换转换成int
谢谢!
Kvci
2006-11-03
打赏
举报
回复
(int) ?
-2.470420e-5这个是你以字符串保存还是double
-2.470420e-5只是显示出来的
如果是以double保存的
一样可以强制转换
Sco_field
2006-11-03
打赏
举报
回复
谢谢!
以前没有用过sscanf函数,今天发现他的威力了
天线越大越好吗_天线数量是不是越多信号越好?无线路由器一、二、三根天线有什么区别?...
大家在选购无线路由器的时候都会有一个疑问,究竟无线路由器1根,2根,还是3 根天线的无线信号比较好呢?大部分朋友在选购无线路由器都只会根据无线路由器天线的数量和价格来判断该款无线路由器的信号强弱,究竟无线路由器是否天线数量越多信号就越好呢?无线路由器一、二、三根天线有什么区别?无线路由器一、二、三根天线有什么区别?MIMO(多入多出)也就是多天线的技术是从802.11n协议之后才有的,之前的802...
无线路由器一、二、三根天线有什么区别?
1、天线的多少取决于路由器采用的通讯协议,多出协议要求数量的天线是无效的。2、两根天线的距离为7.5cm,如果天线距离不足,那这个路由器你就不用看了。“天线越多覆盖越广,天线越多信号越强,总之天线越多的无线路由器就越好”——觉得很“常识”的朋友可以继续往下看正文了,觉得小编弱爆了小编是那个什么的估计也不会点进来。还是那句话,我们的干货帖大多数是为了扫盲,欢迎各位大神补充、指正...
无线路由器天线越多越好吗,MIMO是什么?
我们注意到现代无线路由器的,那么这些天线究竟呢?可能大家的直觉会认为这能增强信号质量,但是我们通过上一期的了解到,天线是无源设备,无法增加信号的发射功率。那么由于 WIFI 网络使用了一种特殊的传输介质,在 802.11n 修正案之前,(我们可以将其理解为家中的无线路由器),这就导致此时的其他无线设备需要等待。为了解决一个 WIFI 网络内,接入设备越多通讯越慢的问题,,其中文的意思就是**「多入多出」**。
无线路由单天线与多天线的区别
• 对于最高支持11g协议的老式无线路由器,一根天线最高支持54Mbps; • 对于最高支持11n协议的半老不新无线路由器,一根天线最高支持150Mbps; • 对于最高支持11ac协议的新式无线路由器,一根天线最高支持433Mbps;如果听到一个路由器“号称”能达到多高的速率,就可以很快的知道它大致有几根天线。目前市场上的无线路由器主要有以下几种:• “号称”54Mbps、15
数据结构与算法
33,026
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章