プログラミングをしていない長い時間を経て、私は来月に割り当てられるC++を使いこなしています。私は、変数がオーバーフローする可能性があることに気付きました。具体的には、浮動小数点型の変数は、倍数型の小数点以下を保持しません。フロートGの精度が低かったのに対し、スタティックキャストはC++で数値の精度をどのように保つのですか?
#include <iostream>
#include <iomanip>
int main()
{
using namespace std;
cout << setprecision(20);
double t(0.1);
float g(0.1);
cout << t << endl;
cout << g << endl;
static_cast<float>(t);
cout << t << endl;
}
最初と最後(TダブルT及びフロート)の両方で、驚いたことにに、精度は同じであった。しかし、私はこのコードを試みました。これは私には直感的ではないようですが、static_castは数値の精度をどのように保持していますか?
ありがとうございました。あなたは何にもstatic_cast
ED値を割り当てていなかったためだ
キャストは、その場の操作ではありません。それらは変換された値を返します。彼らはオリジナルを直接変更しません。キャストの結果は決して保存しないので、何もしません。 –
'float g(0.1f);'もっと正確になるだろう –