自然数の桁数続きの続き

前回: 自然数の桁数つづき - 日記を書く [・w・] はやみずさん

実験してみたら、でかけりゃいいってもんでもないらしい。

gosh> (define (log10 x) (/ (log x) (log 10)))
log10
gosh> (for-each print (map log10 (map (cut expt 10 <>) (iota 30 1))))
1.0
2.0
2.9999999999999996
4.0
5.0
5.999999999999999
7.0
8.0
8.999999999999998
10.0
11.0
11.999999999999998
12.999999999999998
14.0
14.999999999999998
16.0
17.0
17.999999999999996
19.0
20.0
20.999999999999996
22.0
22.999999999999996
23.999999999999996
25.0
25.999999999999996
26.999999999999996
28.0
28.999999999999993
29.999999999999996
#<undef>

このままでは引き下がれないっ、、、

gosh> (define (digit-len num) (round (log10 num)))
digit-len
gosh> (digit-len (expt 10 18))
18.0

orz