首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是Fixnum数据类型在球拍?

什么是Fixnum数据类型在球拍?
EN

Stack Overflow用户
提问于 2015-12-27 06:19:35
回答 1查看 328关注 0票数 1

我想用我的球拍程序来加速它的速度。我的程序使用矩阵数据类型对矩阵进行操作。有人建议我使用数据类型Fixnum。

我有一些矩阵,

(: X (Matrix Fixnum)) (define X (matrix [[0 1] [2 3]] : Fixnum))

这也没问题。

然而,如果矩阵中的数字有小数,我就会得到一个错误。

(: Y (Matrix Fixnum)) (define Y (matrix [[0 0.5] [1.5 2.5]] : Fixnum))

类型检查器:类型错配 预期: Fixnum 给予:正数-Flonum in: 0.5

Fixnum是一种机器类型(我不完全理解这是什么;不确定它是否相关)。我知道固定位限制在64位。但是为什么0.5 (或任何小数,似乎)不能是一个Fixnum呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-27 10:14:43

请阅读文档(http://docs.racket-lang.org/reference/numbers.html)。以下是一段节选:

fixnum是一个精确的整数,它的两个补表示在32位平台上适合31位,在64位平台上适合63位。

所以,不,fixnum是整数。

请注意,0.5和1/2的球拍是不同的。0.5是Flonum,1/2是精确的-Rational。

顺便说一句,我认为你没有必要提到“矩阵”。以下代码只会导致类型错误。

代码语言:javascript
复制
#lang typed/racket

(: X Fixnum)
(define X 0.5)

这是最好的,当你试着理解一个程序,尽可能地削减程序,以便你可以很容易地了解正在发生的事情。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34478102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档