投稿
みどりむし shiyon_29
桁を求める関数の ビフォー(上) アフター(下)。 常用関数のことを教えてくれた人に私は改めて感謝します。
5そうだね
プレイ済み
返信[1]
親投稿
マギー M191246
1001をいれてみると…
0そうだね
プレイ済み
返信[2]
親投稿
みどりむし shiyon_29
ど う し て こ う な っ た
0そうだね
プレイ済み
返信[3]
親投稿
マギー M191246
みき★さんや、おちゃめさんが 言われている誤差って このことじゃないかな。
1そうだね
プレイ済み
返信[4]
親投稿
マギー M191246
厳密な方法は、おちゃめさんが ご存じかも知れませんけど 整数化(VAL(STR$(LOG… とすると、実際と合うみたいです。
0そうだね
プレイ済み
返信[5]
親投稿
Godot orz_127
LOG()とか難しいことはわかりませんが^^; 整数の桁を数えるなら、こんな感じではどうでしょう?
1そうだね
プレイ済み
返信[6]
親投稿
KU kerorinU
整数化しないと駄目っぽいですねー。あと対数とる前に絶対値とらないと負数入れたときエラーでますよ。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
プチコン3号では?LOG(1000,10)を実行すると3と表示されますが、内部では2進数で010000000000001111111111111111111111111111111111111111111111111111(10進数では2.9999999999999996)となってます。 したがって、FLOOR(LOG(1000,10))の値は2になります。 ちなみにSTR$で文字列化したあとにVALで数値に戻すと3になるのはSTR$にする段階で値が丸められるためです。(有効桁数が約16桁から6桁へと減る段階で四捨五入されるため) 桁数を求めるプログラムはシンプルでありながら様々な例外処理が必要になりなかなか奥が深いので第2回プチコン3号コードゴルフの題材に使わせてもらうことにします。 そこで私が考えた桁数を求める方法も書く予定です。
0そうだね
プレイ済み