matlab如何精确保留工作区内小数位数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何精确保留工作区内小数位数?相关的知识,希望对你有一定的参考价值。
我在脚本里对变量显示(fprintf)保留的是5位小数,命令窗口设置的格式是format long;
为什么运行下来后命令行窗口里的结果是5位小数,但是工作区和导出到EXCEL里的却变成了4位小数呢?
(不知为什么他自己四舍五入了,连作图的数字都是小于等于4位来标注的)
感谢大虾指导!
如图所示,分别为:命令行,生成图片(同导出表格),工作区
很多变量,有没有可以批量改的呢?
追答你自己help vpa
追问只能改变命令窗口,改变不了工作区啊~
追答MATLAB是用double来存任何数,就算是1位小数,后面也有很多零
本回答被提问者采纳BigDecimal保留两位小数,或指定精确的位数
public static void main(String[] args) { BigDecimal t1 = new BigDecimal("3.15289"); BigDecimal t2 = new BigDecimal("-3.11289"); // 新的t1值,并初始化 BigDecimal newt1 = BigDecimal.ZERO; // 新的t2值,并初始化 BigDecimal newt2 = BigDecimal.ZERO; // 精确一位小数 结果为 3.1 newt1 = newt1.add(t1.setScale(1,RoundingMode.FLOOR)); // 精确一位小数 结果为 -3.2 newt2 = newt2.add(t2.setScale(1,RoundingMode.FLOOR)); System.out.println("newt1:"+newt1); System.out.println("newt2"+newt2); }
结论:当原始数据为正数时,可采用RoundingMode.FLOOR函数进行要保留的位数,前提是正数的情况下,切记!!!
以上是关于matlab如何精确保留工作区内小数位数?的主要内容,如果未能解决你的问题,请参考以下文章