【问题标题】:Racket - Retrieving the fractional part of a numberRacket - 检索数字的小数部分
【发布时间】:2014-11-05 20:42:22
【问题描述】:

我正在寻找检索数字的小数部分。 IE。如果我给出数字 3.14。我需要输出为 0.14 或 14。

我需要在不使用圆形、地板或天花板的内置函数的情况下执行此操作。

【问题讨论】:

  • 这是作业吗?如果不是,为什么要限制使用哪些功能?

标签: scheme racket


【解决方案1】:

对于一个偷偷摸摸的解决方案,您可以使用正则表达式来裁剪点之前的所有内容:

(define (fraction-only num)
  (string->number (regexp-replace #rx".*(\\..*)" (number->string num) "\\1")))

【讨论】:

    【解决方案2】:

    一个简单的解决方案(前提是你可以使用截断)是这样的:

    (define (fract-part n)
        (- n (truncate n)))
    

    虽然它会有通常的浮点数学舍入错误,所以(fract-part 3.14) 返回0.14000000000000012

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多