1
我正在实施比较器为一类,而重写比较,我有一个问题。Java双NaN比较
double data1 = GetValueOf(Data1);
double data2 = GetValueOf(Data2);
int compareResult = Double.compare(data1, data2);
如果data1和/或data2是NaN会发生什么?
这仍然是一个有效的比较来执行?
UPDATE 我不明白为什么这个问题被降级。只是为了解释我自己,我面临着“Comparison method violates general contract”的问题。
我这样做...
if(Double.isNaN(data1)) data1 = Double.Positive_Infinity;
if(Double.isNaN(data2)) data2 = Double.Positive_Infinity;
的Double.compare前,但仍收到此错误。
所以,我需要了解是否有一些基本的东西我不理解。
您是否阅读过Java语言规范以查找答案? –
如果你正在重写'compare()'从'比较器'你只有你负责验证和比较数据。技术是不负责任何**如果在比较过程中发现任何无效数据引发'Exception' –
@JimGarrison ,我没有检查java文档,但我想要使用Double.compare的意见。 – KSK