'da güç işlevi kullanılırken uzun uzun tamsayı doğru bir şekilde yazdırma Doğru değeri nasıl yazdıracağınız açıklanabilir mi?C++
int main() {
std::cout << pow(2,53);
}
//output=9.0072e+15
'da güç işlevi kullanılırken uzun uzun tamsayı doğru bir şekilde yazdırma Doğru değeri nasıl yazdıracağınız açıklanabilir mi?C++
int main() {
std::cout << pow(2,53);
}
//output=9.0072e+15
pow()
parametrelerin yerine tamsayı olarak double
sürer. Şans eseri, bu tam olarak unsigned long long
ve 2 = (1 < < 53) tarafından temsil edilebilir.
nedenle, kullanabilirsiniz
std::cout << (1ULL << 53);
çok teşekkür ederim –
Eğer bit shift (< <) Eğer zorla 'uzun uzun' doğru türünü kullanabilirsiniz kullanmamayı isterseniz:
long long x = pow(2, 53);
cout << x;
hata yok, Bu, 'pow', 'double' veya' float 'döndürdüğü için, kayan noktalı sayılar için bilimsel gösterimdir. http://www.cplusplus.com/reference/ios/ios_base/fmtflags/ – oarfish
Ya, ancak doğru sayıyı verimli bir şekilde nasıl yazdırabilirim? Bunu yapmam yolu: int main() { uzun uzun int k = pow (2,53); std :: cout << k; } Ancak bunu yapmak için daha verimli bir yolu var mı? –
Bunu denemeden, yukarıdaki bağlantıdan 'cout.setf (std :: ios :: fixed) 'olduğunu tahmin ederdim. – oarfish