这是我具有的功能,可以理解为从1)您的系数和2)您的指数出发,然后从科学计数法中提取数字。
示例:
coefficient 7,
exponent 3
7 * 10^3 = 7000
(define (scientific coeffiecent exponent) (* coefficient (expt 10 exponent)))
这正是我所苦苦挣扎的:反其道而行之的功能,从7000到用于将其转化为科学计数法的系数和指数。我已经通过网络实现了工作功能,但真的很难完全理解它。
(define (sci-exponent number)
(floor (/ (log number) (log 10))))
(define (sci-coefficient number)
(/ number (expt 10 (sci-exponent number))))
如果有人可以帮助我理解,将不胜感激!感谢您阅读任何一种方式!
答案 0 :(得分:2)
看一下sci-exponent
的主体,它以log(number)/ log(10)为底。您可能在数学课上还记得:log a (n1)/ log a (n2)= log n2 (n1)。因此,您得到的是log 10 (数字),其底数是number
的位数减去1,这将是科学计数法的指数。
然后可以轻松地从指数中得出系数。正如您所写,coeff * exp = number
,然后是number / exp = coeff
,这正是sci-coefficient
正在实现的目标。