我做的是一个计算器,但是有一个问题折磨了我一下午,就是小数点,我想让他直接点击小数点的时候显示“0.”,小数点前面还有数的话就直接显示输入的数字,就是这个问题困扰了我一下午,麻烦哪位大侠帮忙解决一下,在线等,急求!

解决方案 »

  1.   

    检测输入小数点前的数字字符是否为Null,是则输入"0."
      

  2.   

    在小数点的单击事件里面做:
    if(你用来显示的控件.Text=="")
    {
    你用来显示的控件.Text=="0.";
    }else{
    你用来显示的控件.Text==".";
    }这就完了,如果不明白可以加我QQ:271341573
      

  3.   

    哦,上面我做的有点不对。
    else里面的应该是
    else{
    你用来显示的控件.Text=你用来显示的控件.Text+".";
    }
      

  4.   

    是怎么操作的
    http://topic.csdn.net/u/20091105/19/3a919720-b121-4011-90d8-b22f4e694495.html
      

  5.   

    1.输入框默认值是0.
    2.当textbox的值改变时判断textbox.value是不是"0"或"0.*";是"0"到A,是"0.*"到B.
    A:如果输入的全是0,就textbox.value=0;如果不是就不管
    B:除了输入了"."或是输入的字串长度>textbox.maxlength否则不管。
      

  6.   

    先用i_input.indexof('.')>-1判断是否有小数点,有的话再把它分成小数点前部分
    i_1=int.parse(i_input.split('.')[0])
    和小数点后半部分,
    i_2=int.parse(i_input.split('.')[2])然后想怎么处理都行
      

  7.   

    我这里有flex做的计算机代码,思想都一样,自己看看吧
    private var operator:String="";
    private var num1:String="";
    private var num2:String="";
    private var point:Boolean=false;

    private function calculateResult():Number{
    var result:Number=0;
    switch(operator)
    {
    case "/":
    result=Number(num1)/Number(num2);
    break;
    case "*":
    result=Number(num1)*Number(num2);
    break;
    case "+":
    result=Number(num1)+Number(num2);
    break;
        case "—":
    result=Number(num1)-Number(num2);
    break;
    default:
    break;
    }
    return result;
    }

    private function numClickHandle(event:MouseEvent):void{
    var showNum:String;

    if(point)
    {
    showNum="."+String(Number(event.target.label));
    point=false;
    }
    else
    {
    showNum=String(Number(event.target.label));
    }
    if(operator=="")
    {
    num1+=showNum;
    txtResult.text=num1;
    }
    else
    {
    num2+=showNum;
    txtResult.text=num2;
    }
    }
    private function opeartorClickHandler(event:MouseEvent):void{
    operator=event.target.label;
    if(num1!=""&&num2!="")
    {
    var result:Number=calculateResult();
    txtResult.text=result.toString();
        num1=result.toString();
        num2="";
        point=false;
    }
    }
    private function resultClickHandle(event:MouseEvent):void{
    if(num1!=""&&num2!=""&&operator!="")
    {
    var result:Number=calculateResult();
    txtResult.text=result.toString();
        num1=result.toString();
        num2="";
        operator="";
        point=false;
    }
    }
    private function radixClickHandle(event:MouseEvent):void
    {
    point = true;
    }
    private function btnResetClickHandle(event:MouseEvent):void
    {
    num1="";
    num2="";
    operator="";
    point=false;
    txtResult.text="0";
    }
      

  8.   

     if(lblResult.Text.IndexOf(".")==-1){
                    lblResult.Text += "0.";
    主要是这里~
      

  9.   

    如果是我, 我会这么做:
    1 做一个List<char>, 或者stack也可以。
    2 每次输入的时候, 在list里面添加东西。当然删除的时候就减东西就行了。
    3 界面要显示的时候, 把list转成string, Convert过去, 然后再ToString回来。显示就行了。 什么都不用自己操心。 连3e5这类奇怪的输入都可以接受的。