std::cout.precision() ialah fungsi yang digunakan untuk mengawal bilangan tempat perpuluhan yang dipaparkan untuk nilai titik terapung. Walau bagaimanapun, dalam senario tertentu, sifar mengekor mungkin tidak dicetak seperti yang dijangkakan.
Pertimbangkan coretan kod berikut:
#include <iostream> #include <stdlib.h> int main() { int a = 5; int b = 10; std::cout.precision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
Kod ini mencetak 0.5 dan bukannya 0.5000 yang dijangkakan. Ini bukan disebabkan oleh jenis data integer asal tetapi kekurangan penindasan sifar mengekor secara lalai.
Untuk memaparkan sifar mengekor dengan betul, manipulator tetap std::tetap mesti digunakan:
std::cout << std::fixed; std::cout << std::setprecision(4); std::cout << (float)a / (float)b << "\n";
Dengan penambahan ini, kod kini akan mengeluarkan 0.5000 seperti yang dimaksudkan. Manipulator tetap std::menentukan bahawa nilai titik terapung harus diformatkan dengan bilangan tempat perpuluhan tetap, memastikan sifar mengekor dikekalkan.
Atas ialah kandungan terperinci Mengapakah `std::cout.precision()` Tidak Mencetak Sifar Jejak Secara Lalai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!