2016-03-26 33 views
2

Aşağıda gösterilen kod here elde edilmiştir. Ama çıktı biraz farklı. MSDN makalesinde çıktı diyor iken olması gerektiği,VS2015'te kodu işlerken farklı çıktılar elde ediyorum. Herhangi bir açıklama var mı?

The quiet Nan for type float is : nan 
The quiet Nan for type int is : 0 
The quiet Nan for type long double is : nan 

:

#include <iostream> 
#include <limits> 

using namespace std; 

int main() 
{ 
    cout << "The quiet NaN for type float is: " 
     << numeric_limits<float>::quiet_NaN() 
     << endl; 
    cout << "The quiet NaN for type int is: " 
     << numeric_limits<int>::quiet_NaN() 
     << endl; 
    cout << "The quiet NaN for type long double is: " 
     << numeric_limits<long double>::quiet_NaN() 
     << endl; 
} 

Bu

benim VS2015 içinde çıkışıdır tablodaki değerlere denk

The quiet NaN for type float is: 1.#QNAN 
The quiet NaN for type int is: 0 
The quiet NaN for type long double is: 1.#QNAN 

this blog entry'da gösterilmiştir.

+0

Microsoft, MSDN'den alıntıda açıklanan bu harika şeyleri kullanırdı. Ancak C99, çıktınızın ne gösterdiğini gösteren NaN değerleri için çıktıların ne olacağını standardize etti, böylece Microsoft'un C standardı ile nihayet yakalanmış gibi görünüyor. –

+0

Soruma cevap vermen çok hoş. Teşekkürler. – Mao

+0

MS doc'dan değişiklik için herhangi bir referans makale var mı? – rents

cevap

0

bu özel IEEE şamandıra değerleri için VS tarafından kullanılan gözcü dizeleri değişikliği "geçmişini 2003 değiştirebilir ++, Visual C - 2015" in "Sonsuzluk ve NaN Biçimlendirme" altında listelenen onlar cevapsız gibi görünüyor Ancak https://msdn.microsoft.com/en-us/library/bb531344.aspx

de bazı VS2015 dokümanlarında güncelleme https://msdn.microsoft.com/library/9e817177-0e91-48e6-b680-0531c4b26625.aspx; Tam olarak doğru olmadığını bildirmek için bir düzeltme gönderdim.