C言語なら俺に聞け(入門編)Part 61 at TECH
[2ch|▼Menu]
366:デフォルトの名無しさん
10/03/14 19:05:19
>>245
ソース見たら、たぶん20行から28行までのところを、なんかしたら、なんかなるかもなぁ〜〜って気がしたんで、
そこのところをあてずっぽうでいじったら、456 って出た(^_^/わーい

ソースの、ここのところを
/* 各桁の数字を、有効な桁まで計算しておく */
for(i = 0, trunc = 0; i < 15; ++i) {
m = modf(n, &n);
buf[i] = (int)n;
n = m * 10.0;



こういうふうに変えてみたです。あとはいっしょです
/* 各桁の数字を、有効な桁まで計算しておく */
double def = n; // ここと
for(i = 0, trunc = 0; i < 15; ++i) {
m = modf(n, &n);
buf[i] = (int)n;
n = ( modf( ((def+pow(10.0,-15)) * pow(10.0,i)), &n ) * 10.0 ); // ここ

わかんないけど、「誤差とかが、掛け算で、かける10ってのを何度もしてると、誤差がでるのかなぁ〜」とかおもったので、
まいかい全部バ〜〜って、かける1000とかして一気にやったらどうかな?って思ってやったけどダメだったので、
しょうがないので0.00000......1 て小さい1足して、四捨五入しちゃえ〜〜 えいや〜〜ってやったら、なんか偶然456 ってなった。 よかった。

すいません、ぜんぜん知的じゃなくて(・_; 算数的な根拠はないです。なんかラッキー頼りですみません(orz はずぅ〜〜い



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5499日前に更新/110 KB
担当:undef