投稿
☆kei☆ keiugo0216
実際こんな簡単に出来るとは思ってなかった。 小数点以下取得関数作りました。 0.~~みたいにしたほうがいいかな
1そうだね
プレイ済み
返信[1]
親投稿
☆kei☆ keiugo0216
・0.~~で返すようにする ・小数じゃなかったら-1を返す
0そうだね
プレイ済み
返信[2]
親投稿
MIKI ifconfig
str$ は1000000.1 や 0.00001 で予想外のことが起こるから要注意。 あと s<=1e-308 でlog がエラーになります。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
STR$の丸め誤差、LOGの演算誤差と演算有効範囲なども考慮した場合は思っている以上に難しくなりますね。 小数部分のみを取得したいならば一例としては「S-S DIV 1」とすれば良いです。(他にもいくつか方法はあります) 負数の場合はABSで正数にするか-1を返すかはお好みで良いでしょう。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
うえこうさんへ Aが正数であればFLOOR(A)もA DIV 1もほぼ同じ動作になりますが、Aが負数の場合は動作が異なります。 FLOOR(-3.5)は-4になりますが、-3.5 DIV 1は-3になります。 このため元の数との差分を取るだけで小数部分+符号を取得できます。 ということで負数を考慮しないのであればA-FLOOR(A)で全く問題はありません。 あとみき★さんが言われているようなSTR$とLOGの注意点も考慮しなければ☆kei☆さんが作ったプログラムでも何ら問題はありません。 どこまで考慮する必要があるかは作る人次第です。
0そうだね
プレイ済み