在Matlab中,双精度相同的数字是否可以大于整数格式的相同数字?

时间:2015-02-16 08:31:01

标签: matlab

我在Matlab中有以下窘境,双精度相同的数字(380.0000)是否可能大于整数格式(380)中的相同数字?以下是给定问题的示例:

K>> maxWeightsSum

maxWeightsSum =

380.0000

K>> solutionsSumSorted(1)

ans =

380

K>> maxWeightsSum>solutionsSumSorted(1)

ans =

 1

2 个答案:

答案 0 :(得分:1)

不,但发生的事情并非如此。你的maxWeightsSum不完全是380,它是一个更大的但你没有展示它。默认情况下,Matlab不会显示整数,但是这4个零应该会给出一个提示,表示它们后面有一些值。此外,您可以检查工作区变量,您应该能够看到整数。

请尝试以下代码:

exact=380;
bigger=380.00000001;

format short % Tell matlab to display only 4 digits after the coma (this is default)

exact
bigger

format longG   % Tell matlab to display the whole number

exact
bigger

通常,您需要根据需要设置显示器的format

编辑:似乎在某些情况下,这还不够。但是,我会在这里留下答案,因为我觉得很重要。

答案 1 :(得分:1)

尝试使用sprintf显示它:

x=sqrt(3)
x =   1.732050807568877
sprintf('%16.16f',x)
ans =
1.7320508075688772

然后

 1.7320508075688772==x
 ans =
 1