トップページ > プログラム > 2014年10月04日 > EyxqtCP8

書き込み順位&時間帯一覧

27 位/213 ID中時間01234567891011121314151617181920212223Total
書き込み数0001000000000100000000013



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
★初心者以前の質問に雪崩のように答えるスレ 2★

書き込みレス一覧

★初心者以前の質問に雪崩のように答えるスレ 2★
646 :デフォルトの名無しさん[]:2014/10/04(土) 03:24:29.62 ID:EyxqtCP8
C++で

template<typename T>
T f(T x)
{
return x+0.02;
}

のように書いた時,0.02の部分から精度面で問題が発生しないのでしょうか?

Fortranだと,例えば倍精度のときは0.02D0の様に精度を気にして書くのが普通だったので気になりました
★初心者以前の質問に雪崩のように答えるスレ 2★
648 :デフォルトの名無しさん[sage]:2014/10/04(土) 13:42:07.13 ID:EyxqtCP8
>>647
レスどうもです

関数 f の運用を書きませんでしたが,
数値計算が目的で,Tとしては double か long double を想定しています.

私が書いたような x に1/50を加えるコードの場合,素直に

double f(double x){return x+0.02;}
long double f(long double x){return x+0.02L;}

と書くしかないのでしょうか.
(あるいは,こう書くのが普通なのでしょうか)
★初心者以前の質問に雪崩のように答えるスレ 2★
652 :デフォルトの名無しさん[sage]:2014/10/04(土) 23:26:08.81 ID:EyxqtCP8
>>649-651
皆さんご回答ありがとうございました.

ところで先ほど long doubleにしても計算精度が上がらないのでおかしいと思って調べたところ,

sizeof(float)=4
sizeof(double)=8
sizeof(long double)=8

になっていました.残念ですorz
(VS2013)


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。