【发布时间】:2014-11-05 20:42:22
【问题描述】:
我正在寻找检索数字的小数部分。 IE。如果我给出数字 3.14。我需要输出为 0.14 或 14。
我需要在不使用圆形、地板或天花板的内置函数的情况下执行此操作。
【问题讨论】:
-
这是作业吗?如果不是,为什么要限制使用哪些功能?
我正在寻找检索数字的小数部分。 IE。如果我给出数字 3.14。我需要输出为 0.14 或 14。
我需要在不使用圆形、地板或天花板的内置函数的情况下执行此操作。
【问题讨论】:
对于一个偷偷摸摸的解决方案,您可以使用正则表达式来裁剪点之前的所有内容:
(define (fraction-only num)
(string->number (regexp-replace #rx".*(\\..*)" (number->string num) "\\1")))
【讨论】:
一个简单的解决方案(前提是你可以使用截断)是这样的:
(define (fract-part n)
(- n (truncate n)))
虽然它会有通常的浮点数学舍入错误,所以(fract-part 3.14) 返回0.14000000000000012
【讨论】: