2

number->second-pair数値を受け入れ、その整数部分と小数部分を 1000000 で乗算したものを表す整数のペアを返す関数が必要です。

すなわち:

(number->second-pair 1)
; returns (1 . 0)
; 1 sec -> (1 sec + 0 usec)
(number->second-pair 5.1234)
; returns (5 . 123400)
; 5.1234 sec -> (5 sec + 123400 usec)

解決策を見つけるのは簡単かもしれませんが、私は多くのドキュメントを検索しましたが、残念ながら数値を整数に変換する方法が見つかりません。誰かが私を助けることができますか?

ところで:

実際には、 を使用してより正確なalarm( this one ) がsetitimer必要なので、正確な整数を引数として渡してください。

4

1 に答える 1

2

私はスキームに少し錆びているかもしれませんが、このようなものがうまくいくと思います。

(define (number->second-pair n)
    (cons (inexact->exact (floor n))
          (inexact->exact (floor (* 1000000 (- n (floor n)))))))

(number->second-pair 5.1234)戻り値(5 . 123400)

(number->second-pair 1)戻り値(1 . 0)

于 2013-04-04T10:21:10.277 に答える