2017-05-16 12:05:01
Re③:除算の結果が・・・?
修正 #---ここから--- Memo1とはメモ そのレイアウトは全体 除算テスト(16800,1.2) 待機 ●除算テスト(a,b) c = a d = 0 e = "" 1でループ d = d + 1 e = e & "{d}回目 ({c} - {b} = " c = c - b e = e & "{c}){改行}" もしc<bならば 抜ける Memo1のテキスト = e & "{a} / {b} = {d} 余り{c}" 戻る #---ここまで--- 検証ありがとうございます。
「ROUND」案もありがとうございます。 引き算で割り算関数を作ってみましたところ・・・何度実行しても「13167回目」でおかしくなります。 なぞは深まるばかりです・・・ #---ここから--- Memo1とはメモ そのレイアウトは全体 除算テスト(16800,1.2) 待機 ●除算テスト(a,b) c = a d = 0 e = "" 1でループ d = d + 1 e = e & "{d}回目 ({c} - {b} = " c = c - b e = e & "{c}){改行}" もしc 抜ける Memo1のテキスト = e & "{a} / {b} = {d} 余り{c}" 戻る #---ここまで--- こちら(Win7 + nadesiko 1.563)でも結果は同じでした。ちょっと実験してみました。
#---ここから--- a = 16800 / 1.2 aを表示 #14000 小数部分(a)を表示 #0.999999... 切り捨て(a)を表示 #13999 b = aの整数部分 bを表示 #13999 c = ROUND(a) cの小数部分を表示 #14000 切り捨て(c)を表示 #0 #---ここまで--- 上記、コメントに書いた様な値になってます。なでしこは数値を書いた場合 実数扱いなので、計算結果が割り切れていても、実数で持っている感じです。 (ただ、最初の計算結果aは14000と表示されるのがなぞなんですが…) aの整数部分だけを抜き出すと13999になっているので、実際に計算結果は 13999.99999999...となっていて、表示する場合にまるめて表示している 可能性があります。 これを避ける方法はROUND()関数を使うぐらいしか思い当たりません。一番 近い整数に丸められるので、ROUND(a)が14000になります。 |