matlab如何精确保留工作区内小数位数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何精确保留工作区内小数位数?相关的知识,希望对你有一定的参考价值。

我在脚本里对变量显示(fprintf)保留的是5位小数,命令窗口设置的格式是format long;
为什么运行下来后命令行窗口里的结果是5位小数,但是工作区和导出到EXCEL里的却变成了4位小数呢?
(不知为什么他自己四舍五入了,连作图的数字都是小于等于4位来标注的)

感谢大虾指导!
如图所示,分别为:命令行,生成图片(同导出表格),工作区

参考技术A 变量名 = vpa(变量名,6)追问

很多变量,有没有可以批量改的呢?

追答

你自己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如何精确保留工作区内小数位数?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 设置小数点后位数

MATLAB中保留小数点位数问题

c语言如何控制小数位数?

matlab里面如何保留小数点后三位

c语言如何控制小数位数

matlab保留小数点后两位。