我有这个表达:
$('#StartDate').daterangepicker({
singleDatePicker: true,
locale: { format: "DD-MM-YYYY" }
},
function (start, end, label) {
var selectedDate = start._d;
var EndMonthDate = new Date(selectedDate.getFullYear(), selectedDate.getMonth() + 1, 0);
EndMonthDate = EndMonthDate .getDate() + '/' + (EndMonthDate .getMonth() + 1) + '/' + EndMonthDate .getFullYear();
$('#EndDate').daterangepicker({
singleDatePicker: true,
startDate: EndMonthDate
});
});
评估为:
(floor (sqrt 2))
如何摆脱浮点位并使其仅生成1,如何将其转换为整数类型。我查看了文档,但一无所获。感谢。
答案 0 :(得分:2)
有几种方法,正如@Alexis所指出的那样inexact->exact
会做到这一点。但是,如果您使用floor
,则racket/math
提供了一个更简单的解决方案exact-floor
(默认情况下包含在#lang racket
程序中)。
这个函数与floor有相同的语义,但有一个例外,它产生一个确切的数字,而不是一个不精确的数字。
> (floor 1.2)
1.0
> (exact-floor 1.2)
1
当然,重要的是要注意,因为+inf.0
和+nan.0
(以及相关的变体)只是浮点数并且没有精确的模拟,所以你无法投射那些:
> (floor +inf.0)
+inf.0
> (exact-floor +inf.0)
; exact-floor: contract violation
; expected: rational?
; given: +inf.0
; [,bt for context]
基本上,floor
功能对real?
个号码进行操作,而exact-floor
则对rational?
个号码进行操作。但是,如果你选择不精确的>确切路线,你仍会得到同样的限制。