我需要帮助。我想做一个按钮,对一个数字进行四舍五入,十进制乘以十进制,比如 1.2345 到 1.234 到 1.23 等。我不想使用 Math.round,因为它四舍五入到一个整数,而且我不知道我是否可以使用 *10/10、*100/100 等,因为我的答案中得到了不同的小数点。在我点击 btnEquals
并完成答案后,此按钮必须在计算器上工作。
我还需要帮助来使用addEventListener
到“List”组件中的标签。
我不知道我是否很好地理解了这个问题,但在你的情况下,我会做这样的事情:
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以匹配尺寸。下面显示了一个小示例: