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

as3-一个按小数整数的按钮

黄元章
2023-03-14

我需要帮助。我想做一个按钮,对一个数字进行四舍五入,十进制乘以十进制,比如 1.2345 到 1.234 到 1.23 等。我不想使用 Math.round,因为它四舍五入到一个整数,而且我不知道我是否可以使用 *10/10、*100/100 等,因为我的答案中得到了不同的小数点。在我点击 btnEquals并完成答案后,此按钮必须在计算器上工作。

我还需要帮助来使用addEventListener到“List”组件中的标签

共有1个答案

郎羽
2023-03-14

我不知道我是否很好地理解了这个问题,但在你的情况下,我会做这样的事情:

var myVal:Number = 1.2345
var vectorFloorResult:Vector.<Number>;
var vectorRoundResult:Vector.<Number>;
var decimals2String:String = myVal.toString();
var firstDecimal:uint = (decimals2String.lastIndexOf(".")+1);
var lastDecimal:uint = decimals2String.length;
var decimals: uint = (lastDecimal-firstDecimal)

var decimalsMultiply:uint = Math.pow(10,decimals);


trace ("decimals = " + decimalsMultiply)
// output : decimals = 4 

function decreseDecimals():void{
    vectorFloorResult = new Vector.<Number>()
    vectorRoundResult = new Vector.<Number>()
    for (var i:uint = decimalsMultiply; i>=10; i/=10){
        vectorFloorResult.push(Math.floor(myVal*i)/i)
        vectorRoundResult.push(Math.round(myVal*i)/i)
    }

}

decreseDecimals();

trace("floor result = " + vectorFloorResult);
trace("round result = " + vectorRoundResult);

输出:

decimals = 10000

对于数学地板:

floor result = 1.2345,1.234,1.23,1.2

对于数学回合:

round result = 1.2345,1.235,1.23,1.2

当你点击一个按钮时,你可以改变代码来得到结果...

对不起,我的英语真的很差!因此,这可能是一个错误的答案(

TL;博士;更多信息,但很无聊!

如果您想使用固定的向量长度,您可以将函数更改为:

function decreseDecimals():void{
    var count:uint = 0
    trace(lastDecimal)
    vectorFloorResult = new Vector.<Number>(decimals,true)
    vectorRoundResult = new Vector.<Number>(decimals,true)
    for (var i:uint = decimalsMultiply; i>=10; i/=10){
        vectorFloorResult[count]=(Math.floor(myVal*i)/i)
        vectorRoundResult[count]=(Math.round(myVal*i)/i)
        count++
    }

}

如果你喜欢“表演”,那肯定会更好。。。

真的太长了,DR;;)

[编辑]

要使用结果更新Textfield或其他组件,您可以执行以下操作:

import flash.text.TextField;
import flash.display.SimpleButton;
import flash.events.MouseEvent;

var myVal:Number = 1.2345;
var vectorFloorResult:Vector.<Number > ;
var vectorRoundResult:Vector.<Number > ;
var decimals2String:String = myVal.toString();
var firstDecimal:uint = (decimals2String.lastIndexOf(".")+1);
var lastDecimal:uint = decimals2String.length;
var decimals:uint = (lastDecimal - firstDecimal);
var myCustomButton:SimpleButton = myCustomButton;
var myDisplayRound:TextField = new TextField();
myDisplayRound.x = 100;
myDisplayRound.y = 50;
myDisplayRound.text = myVal.toString();
addChild(myDisplayRound);

var myDisplayFloor:TextField = new TextField();
myDisplayFloor.x = 100;
myDisplayFloor.y = 100;
myDisplayFloor.text = myVal.toString();
addChild(myDisplayFloor);
    var countClicks:uint = 1;
var decimalsMultiply:uint = Math.pow(10,decimals);
function decreseDecimals():void {
    var count:uint = 0;
    vectorFloorResult = new Vector.<Number > (decimals,true);
    vectorRoundResult = new Vector.<Number > (decimals,true);
    for (var i:uint = decimalsMultiply; i>=10; i/=10)
    {
        vectorFloorResult[count]=(Math.floor(myVal*i)/i);
        vectorRoundResult[count]=(Math.round(myVal*i)/i);
        count++;
    }
}
decreseDecimals();
myCustomButton.addEventListener(MouseEvent.MOUSE_DOWN,changeDisplay);
function changeDisplay(me:MouseEvent):void {
    myDisplayRound.text = vectorRoundResult[countClicks].toString();
    myDisplayFloor.text = vectorFloorResult[countClicks].toString();
    if (countClicks < vectorRoundResult.length-1)
    {
        countClicks++;
    }
    else
    {
        countClicks = 0;
    }
}

[/EDIT]

 类似资料:
  • 我想在按钮旁边添加一个小计数器,以显示某些物品的剩余数量,例如,剩余未使用的小费数量。目标布局如下所示: 我研究过网络,发现有些人说每种数量使用不同的图片。然而,如果数量可以达到100,怎么解决呢?真的有必要这样画出来吗? 我正在考虑将两个按钮粘在一个中,这样当用户按下底部按钮时,顶部按钮将向上和向下计数,并本身,但是否有更好的解决方案或导入? 感谢鲁佩什的代码和建议!我已经实现了如下。然而,你知

  • 我试图通过“created”字段(整数/时间戳)增强搜索,但总是遇到 如果没有“脚本”,查询工作正常。但是我没有什么想法如何正确地写这个脚本。有什么想法吗? 编辑:更新了查询,但仍然遇到“{”错误“:{”root_case“:[{”type“:”parsing_exception“,”reason“:”[query_string]格式错误的查询,预期[END_OBJECT]但找到[FIELD_NA

  • 我是一个新手,我正在尝试创建一个应用程序来在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,Breakth.js…),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息从各自的json文件中检索。我面临的问题是,单击菜单选项时,会检索最后一个菜单项的数据。我将后端编程为只将商品名称和价格推送到数据库,而前端则检索这些数据并将其显示在表上。检

  • 问题内容: 是否有更好的方法从获取? 我们可以摆脱吗? 问题答案: 您可以从给定的数组中选择,使用numpy.choose该数组可以从索引数组(在您的情况下select_id)和一组数组(在您的情况下input_array)中构造一个数组以供选择。但是,您可能首先需要转置input_array以匹配尺寸。下面显示了一个小示例: