当前位置: 首页 > 知识库问答 >
问题:

为什么不能将浮点和整数相加?

阳狐若
2023-03-14
    on addButtonClicked_(sender)

        if readyForFirst = true then

            set finalNumber to faceNumber's integerValue

            set readyForFirst to false

        else

            set finalNumber to finalNumber + faceNumber's floatValue()

        end if

        set firstNumberClick to true

        set theOperator to "+"

    end addButtonClicked_

由于某些原因,这部分不起作用:将finalNumber设置为finalNumber faceNumber的floatValue()

我将错误“无法将«类ocid»id«数据optr000000003701000000000000»转换为类型编号。(错误-1700)”

你知道为什么会这样吗?我想这是因为它不想让我把浮点和整数结合起来。如果这是原因,为什么?我该如何修复它?如果这不是问题,你认为是什么?

谢谢!

共有2个答案

翟永春
2023-03-14

和integerValue一样,floatValue不需要()

试试吧

set finalNumber to finalNumber + faceNumber's floatValue

而不是

set finalNumber to finalNumber + faceNumber's floatValue()
酆英达
2023-03-14

正如你在其他问题中提到的,你必须将值(作为核心基础值返回)转换为Applescript值:

    if readyForFirst = true then
        set finalNumber to faceNumber's integerValue as integer
        set readyForFirst to false
    else
        set finalNumber to finalNumber + (faceNumber's floatValue as real)
    end if

我不知道这是否是一个我们总是需要转换值的错误,但它确实适用于您的其他问题...

你好,迈克尔/汉堡

 类似资料:
  • 问题内容: 因此,如果我有一个范围为‘0-1024’的数字,并且希望将其取为‘0-255’,那么数学将决定将输入除以输入的最大值(在这种情况下为1024),从而得出我的数字介于0.0-1.0之间。然后将其乘以目标范围(255)。 我要做什么! 但是由于Java中的某些原因(使用处理),它将始终返回值0。 该代码将像这样简单 但是我只得到0.0。我已经尝试过两次和诠释。一切都无济于事。为什么!? 问

  • 这样一个看似简单的数字怎么会“太大”而无法在64位内存中表达呢?

  • 问题内容: 有人可以解释一下吗(直接来自文档-强调我的): math.ceil(x) 以浮点数形式 返回 x 的上限,最小 整 数值大于或等于x。 math.floor(x) 以浮点数形式 返回 x 的下限,即小于或等于x的最大 整 数值。 为什么会和回报花车当它们被定义应该算整数? 编辑: 好吧,这有一些很好的论据来说明为什么它们 应该 返回浮点数,而当@jcollado指出它们实际上 _确实_

  • 问题内容: 当我使用交叉工具链编译C代码时,链接程序将显示警告页面,其中指出我的可执行文件使用硬浮点,而我的libc使用软浮点。有什么不同? 问题答案: 硬浮点使用片上浮点单元。软浮点在软件中模拟一个。区别在于速度。看到两者都在同一目标体系结构上使用,这很奇怪,因为该芯片要么具有FPU,要么没有FPU。您可以使用- msoft-float在GCC中启用软浮点。您可能需要重新编译libc以使用硬件浮

  • 问题内容: 我有这个问题,我必须将公里转换成英里。我是一个新手程序员,所以请耐心等待。 到目前为止,这是我的代码: 它给我一个错误,说: 问题答案: 您正在尝试将a 设置为变量 要修复,请更改此行 至

  • 为什么无穷大比较不遵循应用于NANS的逻辑?此代码打印出三次: 但是,如果将更改为,则等于取,大于和小于比较取: 这看起来很危险。假设无穷大的值是由溢出产生的,我想更有可能的是,两个最终为无穷大的变量在完美算术中实际上并不相等。