- ★初心者以前の質問に雪崩のように答えるスレ 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)
|