抽取小数点后几位算法效率比较

原创 2008年10月02日 11:40:00

最近才刚刚开始接触matlab,和不少人对matlab有着同样的一个印象,那就是感叹它竟然有如些强大的功能,由于才刚刚接触,知道的和

使用的指令还不是很多,所以几乎所有的功能都能用一个甚至多个指令来完成。

       从一个小数中抽取小数点后第2、3位,也就是说,给定一个小数,例如0.2947,现在要抽取出9和4两个数。最近以来,在老师的

指导下在学习图像处理方面的东西,由于刚刚起步,一切的一切都要从零开始,而且老师只会给你一个大的方向,具体的东西,比如说

代码、算法都是由自己一点一 点的积累和学习中不断的完成,于是出现了到处请教人的情况出现,呵呵,好像请教人还要一点点的技术

,这里就不用说了,个人经验不足,以后还要学习学习请教的学问,言归正传,matlab中有几个指令,可以用来完成这个算法:

x=0.2947;
xstr=num2str(x);%转化成字符
n=findstr(xstr,'.');%计算出小数点的位值
str2num(xstr([n+2,n+3])) %输出两个要抽取的数9和4

 这个是完全应用了matlab的指令完成的,看来似乎挺完美,但是要是真正用起来就不一定了,我所要实现的算法是要抽取256×256个小

数,可见要是应用这个算法的话要花费多少时间,就我那个算法而言,花了39秒,可见 需要改进算法,不然我的整个算法就等于没用一

般,因为用户不可能花费那么长的时间来等着程序来完成。所以我又重新写了一个算法:
a2= mod(floor(x*100),10);
a3= mod(floor(x*1000),10);
 这个算法是利用了floor这个指令,将x分别乘上100和1000之后用floor指令,得到的就是29和294,再分别对10取余,得到的就是9和4

了,这样一来,时间从原来的39秒减少到了0.9秒左右,真是把我乐坏了,呵呵

  matlab强大的功能有时在一定程序上给了我们不少好处,但是并非所有的都要它来完成,一些高效的算法还是要自己从平时中得到,

上面两个算法的比较中可以看出

float输出小数点后几位

@"%.x f"
  • baohanqing
  • baohanqing
  • 2016年03月26日 10:12
  • 2262

Double、float类型精确到小数点后几位

需求:返回的一系列数据,精确到小数点后2位 方法一、使用Math.round() Double value = 0.254668; (double)Math.round(value*10...
  • chrislanbo
  • chrislanbo
  • 2016年12月01日 09:34
  • 10103

关于精确度-保留小数点后几位小数

之前在开发中,在处理一些CGFloat类型时发现了关于小数点后保留几位小数的一些问题:保留小数点后一位小数: 3.45 --> 3.5,4.95-->4.9通过观察可以发现他不是四舍五入,看起来是...
  • ProMonkeys
  • ProMonkeys
  • 2017年06月29日 10:14
  • 727

小数点后面有几位就保留几位/ 计算文件的大小

/*          * 小数点后面有几位就保留几位          */         CGFloat reduce = [model.benprice floatValu...
  • lurenjia_KB
  • lurenjia_KB
  • 2017年04月07日 10:59
  • 422

经纬度小数点后与精确到米的误差

如下表所示 赤道周长(米) 度数(度) 40076000 360 111322.2222 1 11132.22...
  • wangqing_12345
  • wangqing_12345
  • 2017年02月26日 16:00
  • 6607

JS判断小数点后有几位

var n=3.143423423; alert(n.toString().split(".")[1].length); js javascrip 截取小数点后几位 第一种,利用ma...
  • Thinking771470736
  • Thinking771470736
  • 2015年12月28日 18:56
  • 2863

小数点后保留几位有效数字

遇到对数据的处理时,需要保留几位有效数字。/** * * @param number 需要格式化的数 * @param digits 小数点后保留的位数 * @return ...
  • liuliuqiu915
  • liuliuqiu915
  • 2016年01月22日 11:48
  • 1185

C++的小数点后几位和几位有效数字

cout cout #include #include using namespace std; float c; float fun(float a){ if(a==1){ ret...
  • qq_36124802
  • qq_36124802
  • 2016年11月09日 21:44
  • 2531

java float类型保留小数点后几位

原文地址   http://www.cnblogs.com/Dtscal/p/3485405.html 常用方法: float price=89.89; int itemNum=3; fl...
  • csdnwangzhan
  • csdnwangzhan
  • 2016年09月01日 17:10
  • 2786

保留小数后几位

保留小数后几位这里我使用了两种方法,第一种方法是使用BigDecimal ,第二种方法是使用DecimalFormat。...
  • lady_zhou
  • lady_zhou
  • 2017年12月27日 11:13
  • 35
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:抽取小数点后几位算法效率比较
举报原因:
原因补充:

(最多只允许输入30个字)