首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在picat中从float中获取int?

如何在picat中从float中获取int?
EN

Stack Overflow用户
提问于 2015-03-29 02:11:23
回答 3查看 141关注 0票数 0

我尝试从picat中的console (stdin)中将一行作为字符串读取,并得到它的另一半:

代码语言:javascript
复制
main =>
  L = read_line(),
  B = L.length/2,
  S = L.slice(1,B),
  println(S).

使用error(integer_expected(2.0),slice)崩溃

当使用int而不是B时-无崩溃。那么如何将B转换为整数呢?

EN

回答 3

Stack Overflow用户

发布于 2017-06-28 16:09:43

您可以使用内置函数,如floorroundmath module中的ceiling (更多函数here)。所以你可以像这样修改你的代码:

代码语言:javascript
复制
main =>
    L = read_line(),
    B = round(L.length/2),
    S = L.slice(1,B),
    println(S).
票数 2
EN

Stack Overflow用户

发布于 2015-03-29 02:18:43

尝试使用integer(..)函数将L.length/2转换为整数,或者使用to_integer() function....should为您执行此操作。

票数 0
EN

Stack Overflow用户

发布于 2015-07-30 15:25:50

类型推断在函数计算中起着至关重要的作用。(/ /2)它是一个浮点算术运算符,但slice/2需要一个整数。所以你应该改用( /2)。

代码语言:javascript
复制
Picat> L=read_line(),println(L.slice(1,L.length//2)).
123456789
1234
L = ['1','2','3','4','5','6','7','8','9']
yes
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29320748

复制
相关文章

相似问题

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