W C++ pojęcie pojedynczej precyzji jest używane w kontekście liczb zmiennoprzecinkowych (ang. floating-point). W praktyce oznacza to typ, który zwykle oferuje mniejszą dokładność i zakres niż typ podwójnej precyzji, a jednocześnie często jest szybszy i zajmuje mniej pamięci.
Typem zmiennoprzecinkowym pojedynczej precyzji w C++ jest float. Dlatego odpowiedź "float" jest poprawna: to podstawowy (wbudowany) typ przeznaczony do przechowywania wartości z częścią ułamkową, typowo z mniejszą precyzją niż double.
Dlaczego pozostałe odpowiedzi są niepoprawne:
- "byte" – w samym języku C++ nie jest to klasyczna, wbudowana nazwa typu zmiennoprzecinkowego pojedynczej precyzji. W praktyce "byte" kojarzy się z bajtem (8 bitów) i typami do danych binarnych, a nie z "single precision".
- "char" – jest to typ znakowy/całkowity używany do przechowywania znaków lub małych wartości całkowitych. Nie służy do reprezentacji liczb rzeczywistych w formacie zmiennoprzecinkowym.
- "integer" – taka nazwa nie jest kanonicznym wbudowanym typem w C++ (w C++ występuje m.in. int). Dodatkowo typy całkowite nie są typami zmiennoprzecinkowymi i nie opisuje się ich zwykle kategoriami "pojedyncza/podwójna precyzja".
Wskazówka egzaminacyjna: gdy w pytaniu pojawia się "pojedyncza precyzja", myśl o parze float (single) i double (double). Jeśli mowa o typach znakowych lub całkowitych, to inne zagadnienie niż precyzja zmiennoprzecinkowa.