整数问题 Flex

2023-12-09

我对这段代码有疑问:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   showStatusBar="false"
                   width="250" height="31">
<s:layout>
    <s:HorizontalLayout gap="10" paddingBottom="10" paddingLeft="10" paddingRight="10"
                        paddingTop="10" verticalAlign="middle"/>
</s:layout>
<fx:Script>
    <![CDATA[
        [Bindable]
        private var i:Number = 1.0;

        private function click(e:MouseEvent):void
        {
            if (e.currentTarget == plus)
                i += .1;
            if (e.currentTarget == minus)
                i -= .1;
        }
    ]]>
</fx:Script>
<s:Button id="plus" width="30" label="+" click="click(event)"/>
<s:Button id="minus" width="30" label="-" click="click(event)"/>
<s:Label text="{i}"/>

当我点击“+”时我得到
1.1(好的)
1.2000000000000002(而不是 1.2)
1.3000000000000003(而不是 1.3)
1.4000000000000004(而不是 1.4)
1.5000000000000004(而不是 1.5)
1.6000000000000005(而不是 1.6)
1.7000000000000006(而不是 1.7)
1.8000000000000007(而不是 1.8)
1.9000000000000008(而不是 1.9)
2.000000000000001(而不是 2.0)
...
当我点击“-”时我得到了
0.9(还可以)
0.8(还可以)
0.7000000000000001(而不是 0.7)
0.6000000000000001(而不是 0.6)
0.5000000000000001(而不是 0.5)
0.40000000000000013(而不是 0.4)
0.30000000000000016(而不是 0.3)
0.20000000000000015(而不是 0.2)
0.10000000000000014(而不是0.1)
1.3877787807814457e-16(而不是0.0)
...
我改变我的功能

private function click(e:MouseEvent):void
{
    if (e.currentTarget == plus)
        i = Math.floor((i + 0.1) * 10) / 10;
    if (e.currentTarget == minus)
        i = Math.floor((i - 0.1) * 10) / 10;
}

当我仅单击“+”或仅单击“-”时,我会得到正确的数字
但如果我点击“-”直到 0.7,然后点击“+”,它就会保持在 0.7
当我单击“-”时相同的附加,直到 0.9,当“+”时,它保持为 0.8

为什么?如何将数字增加或减少 0.1?


尝试使用:

private function click(e:MouseEvent):void
{
    if (e.currentTarget == plus)
        i = Math.round((i + 0.1) * 10) / 10;
    if (e.currentTarget == minus)
        i = Math.round((i - 0.1) * 10) / 10;
}

或者对于 Flex 4.5:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   showStatusBar="false"
                   width="250" height="31">
<s:layout>
    <s:HorizontalLayout gap="10" paddingBottom="10" paddingLeft="10" paddingRight="10"
                        paddingTop="10" verticalAlign="middle"/>
</s:layout>
<fx:Script>
    <![CDATA[
        [Bindable]
        private var i:Number = 1.0;

        private function click(e:MouseEvent):void
        {
            if (e.currentTarget == plus)
                i += .1;
            if (e.currentTarget == minus)
                i -= .1;
        }
    ]]>
</fx:Script>
<fx:Declarations>
    <s:NumberFormatter id="numberFormatter" trailingZeros="true" fractionalDigits="1" />
</fx:Declarations><s:Button id="plus" width="30" label="+" click="click(event)"/>
<s:Button id="minus" width="30" label="-" click="click(event)"/>
<s:Label text="{numberFormatter.format(i)}"/>
</s:WindowedApplication>

或者对于 Flex 4:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   showStatusBar="false"
                   width="250" height="31">
<s:layout>
    <s:HorizontalLayout gap="10" paddingBottom="10" paddingLeft="10" paddingRight="10"
                        paddingTop="10" verticalAlign="middle"/>
</s:layout>
<fx:Script>
    <![CDATA[
        [Bindable]
        private var i:Number = 1.0;

        private function click(e:MouseEvent):void
        {
            if (e.currentTarget == plus)
                i += .1;
            if (e.currentTarget == minus)
                i -= .1;
        }
    ]]>
</fx:Script>
<fx:Declarations>
    <mx:NumberFormatter id="numberFormatter" precision="1" rounding="nearest" />
</fx:Declarations><s:Button id="plus" width="30" label="+" click="click(event)"/>
<s:Button id="minus" width="30" label="-" click="click(event)"/>
<s:Label text="{numberFormatter.format(i)}"/>
</s:WindowedApplication>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

整数问题 Flex 的相关文章

  • 在 Flex 上显示数据点

    我正在使用带有
  • 有没有好的 AS3 代码片段/示例的指针?

    我是 AS3 的新手 每天都在学习 我正在寻找好的 AS3 代码片段 示例 小项目 我可以将其用于学习目的和参考 不依赖于 Flash IDE 因为我使用 Flex SDK 和 Flash Develop 此外 我还专门寻找有关音频 视频流
  • Adobe Air Mobile 为什么启动视频 stageVideo 时舞台会闪烁?

    我正在尝试使用 stageVideo 在 Android 平板电脑上播放视频 但每当我单击播放并将视频添加到舞台时 孔应用程序都会闪烁 然后视频会添加到舞台 然后视频开始全部像素化 然后它消失并开始正常播放 只需跳跃几次 我想知道什么情况会
  • 在自定义 Flex 组件中绘制叠加层

    如何在 Flex 中创建一个自定义 MXML 组件 该组件基于现有组件 但在某些情况下会在该现有组件上绘制覆盖层 理想情况下 新组件应该基于 派生自 现有组件 以便现有组件的出现可以用新组件替换 我尝试在新组件中重写 updateDispl
  • BlazeDS 与 GraniteDS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • FlexUnit ANT 任务挂起

    我正在使用 ANT 任务在构建服务器上运行 FlexUnit 当我从 Flash Builder 4 运行 Flex 单元测试时 它工作正常 但是当从 ANT 运行时 它会打开默认播放器 在我的例子中是 FireFox 成功运行 FU 但永
  • AS3 无法从 Java 发送的套接字解​​码 AMF3 对象

    我有一个 java 套接字服务器 它在连接时将 Animal 对象发送到 Flash 客户端 对象的发送方式如下 Amf3Output amf3Output new Amf3Output SerializationContext getSe
  • 将应用程序状态保存在磁盘或其他位置,以便用户稍后访问它

    In 弹性构建器 4 5我正在做一个像这样的项目cacoo http www cacoo com 我想保存diagrams display object ui components text 在将应用程序关闭到应用程序之后我无法访问的某个地
  • Flex 垂直数据网格

    我可以有一个垂直而不是水平显示数据的数据网格吗 例如 如果这是我的数据提供者 array firstname John lastname Doe array firstname Jack lastname Jill 我希望数据显示如下 Fi
  • 弹性图表隐藏数据提示

    我们从多个源获取数据 并且某个日期的数据可能存在也可能不存在 因此 对于没有数据的点 我们发送 NaN 问题 在下面的代码中 有没有办法不显示那些为空的数据提示 我添加了一个数据提示功能 但它确实显示了一个小的空方块 是否有可能甚至不显示
  • html 表单发布到 Flex 应用程序

    我有一个基本完成的 Flex 应用程序 它使用 Zend AMF 来连接 提供数据 我的应用程序确实有一个登录屏幕 看起来工作正常 现在我想在我的网站上添加另一个登录表单 允 许用户输入用户名 密码 提交表单时应将数据传递给 Flex 应用
  • 具有可变颜色线的柔性折线图

    我有一个相当简单的需求来创建折线图 我想要绘制图表的数据基于单个每日数据点 xml数据示例
  • 在没有流媒体服务器的情况下在 Flash 中录制 h.264 视频?

    是否可以在不需要流媒体服务器 如 fms wowza red5 的情况下从 Flash Actionscript 相机 即网络摄像头 保存 h 264 视频 我还想从麦克风获取样本数据 并在客户端对其进行转码 以便用户可以录制 h 264
  • 将 Tomcat 插件添加到 Flex Builder

    无论如何 我们可以将 tomcat eclipse 插件添加到 Adob e Flex Builder 3 中吗 换句话说 我们可以将所有 Eclipse 插件也添加到 Flex Builder 中吗 我不确定 Tomcat 的情况如何 但
  • (简单)Flex 3 应用程序需要什么版本的 Flash 播放器?

    Flex 3 应用程序需要什么版本的 Flash 播放器 要求似乎是FLEX开发环境中的HTML WRAPPER ACTIONSCRIPT编译器设置 我可以在那里选择什么来最大程度地兼容旧的 Flash 播放器 v8 播放器可以工作吗 Fl
  • 如何将 C# 与 AIR 结合使用?

    我在制作 Flex 网站方面有一些基本经验 但我认为 Flex 在制作桌面 AIR 应用程序方面更有用 无论如何 我想知道是否至少可以将 C 与 Actionscript AIR 一起使用 我找不到任何这方面的例子 另外 我可以在 Flex
  • 在 Flex 中以 HTTP Post 方式上传任意数据

    我们目前有一个 Java 小程序 可以生成大量数据并将其上传到我们的服务器 我们拥有的上传方法之一是使用 HTTP POST 到我们的服务器 其内容只是原始数据 没有多部分编码或任何内容 我正在考虑实现一个具有相同功能的 Flex 应用程序
  • Flex 相当于 Google Visualization Geomap(等值线地图)?

    The 谷歌可视化地理地图 http code google com apis visualization documentation gallery geomap html Overview组件是一个等值线地图 http en wikip
  • SQL 错误:“没有这样的表”

    我试图解决为什么我的代码为所有查询返回 null 的原因 最后发现 sql 查询什么也没有返回 我使用简约代码创建了一个新的 AIR 文档 s WindowedApplication
  • 在 ActionScript 中刷新数据网格时保持选择

    我正在使用 flashbuilder 开发我的第一个 AIR 应用程序 只是让您知道 我已经绑定了一个mx DataGrid组件到一个DataProvider这是一个mx HTTPService获取包含项目的 xml 文件 为了使数据保持最

随机推荐