matlab GUI里面如何保留小数点后特定位数并显示

笔者最近在GUI编程中想让数值保留小数点后三位数显示在界面中。

常见的函数有:

一、取整函数

 1.向零取整(截尾取整) 

fix-向零取整(Round towards zero);

 >> fix(3.6)   

 ans = 3 

2.向负无穷取整(不超过x 的最大整数-高斯取整) 

floor-向负无穷取整(Round towards minus infinity); 

>> floor(-3.6)   

ans = -4 

3.向正无穷取整(大于x 的最小整数) 

ceil-向正无穷取整(Round towards plus infinity); 

>> ceil(-3.6)    

ans = -3 

4.向最近整数取整,四舍五入(四舍五入取整) 

round-向最近整数取整,四舍五入(Round towards nearest integer); 

>> round(3.5) 

ans = 4   

二、在小数点后某一位四舍五入,即保留几位小数,也经常用到。 

1.数值型 roundn—任意位位置四舍五入 

>>a=123.4567890; 

>>a=roundn(a,-4) 

a =   123.4568 

其中roundn函数功能如下:    

y = ROUNDN(x) rounds the input data x to the nearest hundredth.   %不指定n,精确到百分位 y = ROUNDN(x,n) rounds the input data x at the specified power    %精确到小数点后指定位数n  

2.符号型 

digits(4) 

vpa(....) 

必须说明:vpa命令不能识别整数与小数,只算总位数,因此对它来说小数整数无论哪个都占一位,例如对9.3154保留两位小数时就得写成:

>>a=9.3154; 

>>digits(3) 

>>b=vpa(a) 

b= 9.32 

其中b为符号型变量; 

3.字符型 

>>a=12.34567; 

>>b = sprintf('%8.2f',a) 

b = 12.35 其中b为字符型变量。 

附大佬的帖子:各种方法总结的很详细。

https://blog.csdn.net/dalaipifengxiansheng/article/details/52641724

https://blog.csdn.net/witnessai1/article/details/52432473

笔者用的是roundn,保留小数点后三位。

在命令行输入:

sum1=[1.2345,2.4567,8.4];

sum1=roundn(sum1,-3);

结果是:

sum1 =

    1.2350    2.4570    8.4000

有人会疑惑,不是说显示小数点后三位吗?怎么后面还有多余的0。笔者试了一下,在GUI可编辑文本中显示的时候,后面多余的0是看不到的。所以可以放心使用。

GUI可编程文本显示数值代码如下:

str1=num2str(sum1(1,1));%将sum1数组第一行第一列数字转为字符。

obj1=handles.edit1;%edit1是想显示数字所对应的可编辑文本。

set(obj1,'String',str1);%显示数字

可以通过双击可编辑文本,弹出其属性检查器查看,其中Tag中的标志符就是edit1。

matlab GUI里面如何保留小数点后特定位数并显示_第1张图片

从GUI可编程文本中获取数字的代码是: 

a= get(handles.edit1,'String');
sum1=str2double(a); 

你可能感兴趣的:(matlab)