2

我想要一个函数number->second-pair,它接受一个数字并返回一对整数,表示其整数部分和小数部分乘以 1000000。

IE:

(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这个)通过使用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 回答