我在Matlab中有以下窘境,双精度相同的数字(380.0000)是否可能大于整数格式(380)中的相同数字?以下是给定问题的示例:
K>> maxWeightsSum
maxWeightsSum =
380.0000
K>> solutionsSumSorted(1)
ans =
380
K>> maxWeightsSum>solutionsSumSorted(1)
ans =
1
答案 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