UITextField 限制用户输入小数点后位数的方法

位数限制: limited

在UITextField的代理方法中添加类似如下代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

    NSMutableString * futureString = [NSMutableString stringWithString:textField.text];
    [futureString  insertString:string atIndex:range.location];

    NSInteger flag=0;
    const NSInteger limited = 1;
    for (int i = futureString.length-1; i>=0; i--) {

        if ([futureString characterAtIndex:i] == ‘.‘) {

            if (flag > limited) {
                return NO;
            }

            break;
        }
        flag++;
    }

    return YES;
}
时间: 2024-11-05 13:30:37

UITextField 限制用户输入小数点后位数的方法的相关文章

Java中几种常用的设置小数点后位数的方法

记录下几种常用的控制小数点后位数的方法,除了这几种还有很多方法也可以控制,但是用得不常见,下面是比较常见的几种方法 使用BigDecimal类对超长数字进行格式化控制 使用DecimalFormat格式化十进制数字 使用printf格式化输出 具体实现 package _12_26_test; import java.math.BigDecimal; import java.math.BigInteger; import java.text.DecimalFormat; /*控制小数点后位数的几

c#保留小数点后位数的方法

http://www.cnblogs.com/furenjun/archive/2010/07/13/1776484.html Double dValue = 95.12345; int iValue = 10000;            string strValue = "95.12345";            string result = ""; result = Convert.ToDouble(dValue).ToString("0.00

PHP:计算小数点后位数

本文提供两种方法,一种将小数变成字符串,然后用"."来截取,去.后的子字符串长度.还有一种是讲小数*10的N次方,比如10的8次方再对8次方取余数,再不断对10求余,直到对10求余的结果不为0. 相比来说,第一种方法要好不少,理由是这样的,比如1.000004在很边界的时候或者0.99999这样子PHP处理会有问题,会有误差,导致得到的位数不一样.而且精度难以把握,所以处理这种跟边界有关的问题最后能用字符串还是字符串来做. 第一种 private function _getFloatL

[Java]对double变量进行四舍五入,并保留小数点后位数

1.功能 将double类型变量进行四舍五入,并保留小数点后位数 2.代码 import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.NumberFormat; public class Test { /** * 保留两位小数,四舍五入 * @param d * @return */ public static double format

Android EditText监听小数点让用户只能输入小数点后两位

最近项目需要输入价格,但是不想让用户在小数点后面输入太多,所以我封装了一个.当用户输入小数点的时候 监听小数点后面的位数,只要大于两位就立马删掉,封装好了,直接可以拿过来用! public static void setPricePoint(final EditText editText) { editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s

C++中输出 位宽和小数点后位数 的控制

要用到这个头文件: <iomanip> setw(x) : 表示控制输出x的位宽 setprecision(x) :表示 控制输出小数点后 x 位 cout.precision(x): 表示控制输出的 该数值的5个数字 例如:y=1.0456789 cout.precision(3); cout<<y<<endl; 输出为:1.04 (包含3个数字) #include <iostream> #include <iomanip> using nam

Money类型转化为String去除小数点后0解决方法

Money类型转化为String去除小数点后0从数据库提取Money类型后,字符串如:1212.0000 如何使其成为1212             注:去掉了小数点 如果是:1212.0100 使其成为   1212.01 难道要循环截取   有没有简单的方法 我要在Gridview中用到------解决方案--------------------double i = 1.1111; string s = i.ToString( "0.00 "); ------解决方案------

GridView和DataFormatString 日期格式 精确小数点后位数

如果DataFormatString无效,请添加属性 HtmlEncode = "false" --------------------------------------- DataFormatString 属性语法如下: DataFormatString="{0:格式字符串}" 我们知道在DataFormatString 中的 {0} 表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式;另外在指定的格式符号后可以指定小数所要显示的位数.例如原来的数

限制只能输入小数点后两位

<script type="text/javascript"> function strNumber(elm){ elm.value = elm.value.replace(/^[^0-9.]*(\d*[\.]?\d{0,2})\w*$/,'$1'); }</script> <input type="text"  onkeyup="strNumber(this)"/>