精华内容
下载资源
问答
  • DECIMAL简介 DECIMAL从MySQL 5.1引入,列声明语法... D是小数点右边位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。 例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数任何值,

    DECIMAL简介

    DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。NUMERIC与DECIMAL同义,如果字段类型定义为NUMERIC,则将自动转成DECIMAL。

    对于声明语法DECIMAL(M,D),自变量的值范围如下:

    • M是最大位数(精度),范围是1到65。可不指定,默认值是10。 D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。
    • 例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中的值的范围是从-999.99到999.99。
    展开全文
  • 如果要查明数据对象的数据类型, 或者要在程序的运行期间使用其属性,请使用 DESCRIBE 语句。语法如下:语法DESCRIBE FIELD [LENGTH ] [TYPE [COMPONENTS ]][OUTPUT-LENGTH ] [DECIMALS ][EDIT MASK ].将由语句的...
    如果要查明数据对象的数据类型, 或者要在程序的运行期间使用其属性,请使用 DESCRIBE 语句。语法如下:
    语法
    DESCRIBE FIELD [LENGTH ] [TYPE [COMPONENTS ]]
    [OUTPUT-LENGTH ] [DECIMALS ]
    [EDIT MASK ].
    将由语句的参数指定的数据对象的属性写入参数后的变量。
    DESCRIBE FIELDS 语句具有下列参数:
    参数用途
    LENGTH 确定字段长度

    TYPE确定数据类型

    OUTPUT-LENGTH确定输出长度

    DECIMALS确定小数位

    EDIT MASK确定转换例程


    确定字段长度

    要确定数据对象的长度,请利用 DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:
    语法
    DESCRIBE FIELD LENGTH .
    系统读取字段的长度,并将值写入字段 。
    DATA: TEXT(8), LEN TYPE I.
    DESCRIBE FIELD TEXT LENGTH LEN.
    该示例中,字段 LEN 包含的值为 8。


    确定数据类型

    要确定字段的数据类型,请利用 DESCRIBE FIELD 语句使用 TYPE 参数,如下所示:
    语法
    DESCRIBE FIELD TYPE [COMPONENTS ].
    系统读取字 段 的数据类型 ,然后将值 写入字段 。
    除返回预定 义数据类型 C、D、F、 I、N、P、 T 和 X 外(参见 基本数据类型 - 预定义的 中的表), 该语句还返 回
    s 对于带前导 符号的两字 节整型
    b 对于无前导 符号的一字 节整型
    h 对于内表
    C 对于组件中 没有嵌套结 构的结构
    C 对于组件中 至少有一个 嵌套结构的 结构
    类型 s 和 b 可以来自于 对 ABAP/4 词典对象的 引用(参见 TABLES 语句),而后三 种类型则源 于用户定义 的类型。
    通过选项 COMPONENTS ,语 句返回
    u 对于组件中 没有内表的 结构
    v 对于组件或 子组件中至 少有一个内 表的结构
    并将结构的 直接组件的 个数写入 。
    TABLES SPFLI.
    DATA: NUMTEXT(8) TYPE N, TYP.
    DESCRIBE FIELD NUMTEXT TYPE TYP.
    WRITE TYP.
    DESCRIBE FIELD SPFLI-FLTIME TYPE TYP.
    WRITE TYP.
    这产生下列 输出:
    N T
    示例中,字 段 TYP 包含第一个 值“N”, 然后是值“ T”。
    TYPES: SURNAME(20) TYPE C,
    STREET(30) TYPE C,
    ZIP_CODE(10) TYPE N,
    CITY(30) TYPE C,
    PHONE(20) TYPE N,
    DATE LIKE SY-DATUM.
    TYPES: BEGIN OF ADDRESS,
    NAME TYPE SURNAME,
    CODE TYPE ZIP_CODE,
    TOWN TYPE CITY,
    STR TYPE STREET,
    END OF ADDRESS.
    TYPES: BEGIN OF PHONE_LIST,
    ADR TYPE ADDRESS,
    TEL TYPE PHONE,
    END OF PHONE_LIST.
    DATA PL TYPE PHONE-LIST.
    DATA: TYP, N TYPE I.
    DESCRIBE FIELD PL TYPE TYP COMPONENTS N.
    WRITE: TYP, N.
    该示例与 TYPES 语句 中的最后一 个示例相似 。输出如下 :
    u 2
    此处,由于 PL 是具有 2 个直接组件 (ADR 和 TEL)而 没有内表的 结构,所以 字段 TYP 包含值‘u’ ,而 N 包含值 2。


    确定输出长度

    要确定字段的输出长度 ,请利用 DESCRIBE FIELD 语句使用 OUTPUT-LENGTH 参数,如下 所示:
    语法
    DESCRIBE FIELD OUTPUT-LENGTH .
    系统读取字 段 的输出长度 ,并将值写 入字段 。
    DATA: FLOAT TYPE F, OUT TYPE I, LEN TYPE I.
    DESCRIBE FIELD FLOAT LENGTH LEN OUTPUT-LENGTH OUT.
    该示例的结 果是字段 LEN 包含值 8,而字段 OUT 包含值 22。
    关于输出长 度的详细信 息,参见 WRITE 语句 。


    确定小数位

    若要确定类 型 P 字段的小数 位的个数, 请利用 DESCRIBE FIELD 语句使用 DECIMALS 参数,如下 所示:
    语法
    DESCRIBE FIELD DECIMALS .
    系统读取字 段 的小数个数 ,并将值写 入字段 。
    DATA: PACK TYPE P DECIMALS 2, DEC.
    DESCRIBE FIELD PACK DECIMALS DEC.
    该示例的结 果是字段 DEC 包含值 2。


    确定转换例程

    要确定 ABAP/4 词典中某字段的转换例程是否存在,如果存在,名称是什么,请利用 DESCRIBE FIELD 语句使用 EDIT MASK 参数,如下 所示:
    语法
    DESCRIBE FIELD EDIT MASK .
    如果 ABAP/4 词典中字段 的转换例程 存在,则系 统将其写入 字段 ,然 后将系统字 段 SY-SUBRC 中的返回代 码设为 0。
    可以象下面 所显示的那 样,在 WRITE 语句中将字 段 直接用作格 式模板:
    WRITE USING EDIT MASK .
    关于 WRITE 语句的详细 信息,参见 WRITE 语句 。如果字段 没有转换例 程,则系统 将返回代码 设为 4。
    ABAPDOCU DEMO
    REPORT demo_describe_field.
    TYPES: surname(20)  TYPE c,
           street(30)   TYPE c,
           zip_code(10) TYPE n,
           city(30)     TYPE c,
           phone(20)    TYPE n,
           date         TYPE sy-datum.
    TYPES: BEGIN OF address,
             name TYPE surname,
             code TYPE zip_code,
             town TYPE city,
             str  TYPE street,
           END OF address.
    TYPES: BEGIN OF phone_list,
             adr TYPE address,
             tel TYPE phone,
           END OF phone_list.
    TABLES spfli.
    DATA: BEGIN OF test,
      col1(3) TYPE c,
      col2(2) TYPE c,
      col3 TYPE i,
    END OF test,
    dist TYPE i.
    DATA: text(8) TYPE c VALUE 'abcdefgh', len TYPE i,
          numtext(10) TYPE n VALUE '0123456789', typ(1) TYPE c,
          pl TYPE phone_list,
          n TYPE i,
          float TYPE f, out TYPE i,
          pack TYPE p DECIMALS 2, dec(1) TYPE c.

    DESCRIBE FIELD text LENGTH len IN CHARACTER MODE.
    WRITE: text, 'has length', len.
    DESCRIBE FIELD numtext TYPE typ.
    WRITE: / 'Numerical text has type', typ.
    DESCRIBE FIELD spfli-fltime TYPE typ.
    WRITE: 'and SPFLI-FLTIME has type', typ.
    DESCRIBE FIELD float LENGTH len IN BYTE MODE OUTPUT-LENGTH out.
    WRITE: / 'Floating point number has length', len,
                            'and output length', out.
    DESCRIBE FIELD pack DECIMALS dec.
    WRITE: / pack, 'has', dec, 'Decimals'.
    DESCRIBE FIELD pl TYPE typ COMPONENTS n.
    WRITE: / 'The complex field PL has type', typ, 'with', n, 'components'.
    DESCRIBE DISTANCE BETWEEN test-col3 AND test-col1 INTO dist
             IN BYTE MODE.
    WRITE: / 'The distance between TEST-COL3 and TEST-COL1 is', dist.
    结果:
    验证 DESCRIBE FIELD
    ——————————————————————————————————————————————————————————————
    abcdefgh has length          8
    Numerical text has type N and SPFLI-FLTIME has type I
    Floating point number has length          8  and output length         24
                0.00  has 2 Decimals
    The complex field PL has type u with          2  components
    The distance between TEST-COL3 and TEST-COL1 is         12
    展开全文
  • decimal(8,3)现在考虑最终要存储要在Android中验证的值的列的数据类型,我已经考虑了这些两种情况:如果用户输入不带小数的数字,则最大位数必须为8如果用户输入带小数的数字,则最大位数必须为8(包括小数点右边的...

    您是否知道确保用户只能输入最大小数位数的数字的任何方法。我不确定如何解决这个问题。在MS

    SQL数据库中,我将从应用程序中发送数据,我得到了具有这种类型的列。decimal(8,3)

    现在考虑最终要存储要在Android中验证的值的列的数据类型,我已经考虑了这些两种情况:

    如果用户输入不带小数的数字,则最大位数必须为8

    如果用户输入带小数的数字,则最大位数必须为8(包括小数点右边的数字)

    现在,我可以确定第一种情况,而对于第二种情况则不是那么确定。 保持最大位数固定(例如,始终为8)是否正确?

    还是我应该考虑允许小数点左边最多8位,小数点右边最多3位?

    无论哪种方式,这都是我在Android中一直尝试的方法:

    mQuantityEditText.addTextChangedListener(new TextWatcher() {

    @Override

    public void afterTextChanged(Editable s) {

    String str = mQuantityEditText.getText().toString();

    DecimalFormat format = (DecimalFormat) DecimalFormat

    .getInstance();

    DecimalFormatSymbols symbols = format.getDecimalFormatSymbols();

    char sep = symbols.getDecimalSeparator();

    int indexOFdec = str.indexOf(sep);

    if (indexOFdec >= 0) {

    if (str.substring(indexOFdec, str.length() - 1).length() > 3) {

    s.replace(0, s.length(),

    str.substring(0, str.length() - 1));

    }

    }

    }

    @Override

    public void beforeTextChanged(CharSequence s, int start, int count,

    int after) {

    }

    @Override

    public void onTextChanged(CharSequence s, int start, int before,

    int count) {

    }

    });

    即使上面的代码处理最大的小数位数。它不限制EditText中允许的总位数。

    您是否认为可以帮助我改善代码,使其同时处理最大小数位数和EditText中允许的总位数(考虑小数点左侧和右侧的两个数字)

    编辑

    好吧,现在我正在尝试JoãoSousa的建议,这是我已经尝试的方法:

    1)我定义了一个实现InputFilter的类

    public class NumberInputFilter implements InputFilter {

    private Pattern mPattern;

    public NumberInputFilter(int precision, int scale) {

    String pattern="^\\-?(\\d{0," + (precision-scale) + "}|\\d{0," + (precision-scale) + "}\\.\\d{0," + scale + "})$";

    this.mPattern=Pattern.compile(pattern);

    }

    @Override

    public CharSequence filter(CharSequence source, int start, int end, Spanned destination, int destinationStart, int destinationEnd) {

    if (end > start) {

    // adding: filter

    // build the resulting text

    String destinationString = destination.toString();

    String resultingTxt = destinationString.substring(0, destinationStart) + source.subSequence(start, end) + destinationString.substring(destinationEnd);

    // return null to accept the input or empty to reject it

    return resultingTxt.matches(this.mPattern.toString()) ? null : "";

    }

    // removing: always accept

    return null;

    }

    }

    2)尝试使用这样的类:

    mQuantityEditText.setFilters(new InputFilter[] { new NumberInputFilter(8,3)} );

    展开全文
  • 数据类型

    2019-12-19 01:39:48
    当指定了对象的数据类型时,也就指定了该对象所含的数据类型、所存储值得长度、大小、数字精度和小数位数。 基本数据类型的分类有:数值数据类型、字符和二进制数据类型、日期时间数据类型、逻辑数据类型。 1、数值...

    数据库中,列、变量、存储过程等均具有数据类型。当指定了对象的数据类型时,也就指定了该对象所含的数据类型、所存储值得长度、大小、数字精度和小数位数。
    基本数据类型的分类有:数值数据类型、字符和二进制数据类型、日期时间数据类型、逻辑数据类型。

    1、数值数据类型

    ①、整数数据类型
    用来存储整数,可以用较少的字节存储较大的精确数字,数值列应尽量使用整数。
    在这里插入图片描述
    ②、浮点数数据类型
    用来存储实数数据
    在这里插入图片描述
    float占据8字节、real占据4字节。

    备注:float可写成float(n)的形式。

    ③、精确数值类型
    用于存储有小数点且小数点后位数确定的实数。
    有decimal和numeric两种类型

    ④、货币类型
    有money和smallmoney两种类型。
    输入货币数据时必须先加$符号,要不会被当成浮点数

    2、字符和二进制数据类型

    ①、字符数据类型
    用于存储汉子、英文字母、数字符号和其他各种符号。
    输入字符数据时需用单引号括起来。
    有char、varchar、text三类型。
    char:定义形式为:char[(n)],n取值为1到8000。默认为1.
    varchar:定义形式为:varchar[(n)],n取值为1到8000。默认为1.
    text:用来存储数据量大而变长的字符文本数据,text的长度可变。当要求存储255个字符以上的数据时,可使用text类型
    备注:char和varchar的数据类型一致,区别有1、主要有是varchar字符长度小于n是不用空格来填满,按输入字符的实际长度存储,若输入的数据超过n个字符,则截断后存储。2、varchar所需要的存储空间小一些 3、varchar列的存取速度较char慢

    ②、二进制数据类型
    用来存储二进制数据或字符串。
    使用时用引号或者0x开头。
    分类:binary:定义形式为:binary[(n)],n取值为1到8000。默认为1.存储二进制字符。如程序代码和图像数据。
    varbinary:定义形式为:varbinary[(n)],n取值为1到8000。
    image:与text类似,存储的为二进制数据。
    一般用varbinary类型来存储二进制数据,image可以用来存储超过8kb的可变长度二进制数据。
    备注:binary、varbinary的区别和char和varchar类似。

    3、日期时间数据类型

    用来存储日期好时间数据
    分类:datetime:存储从1753.1.1到9999.12.31的时间日期数据,精确到3/100秒。长度为4字节整数(日期和时间)
    smalldatetime:存储从1900.1.1到2079.6.6的时间日期数据,精确到分钟。长度为4字节(小时和分钟)

    4、逻辑数据类型bit

    bit,适用于判断真假的场合,长度为1.取值有1、0、null。
    备注:bit列不允许建立索引
    多个bit列可以占用同一个字节。

    5、其他

    timestamp:时间戳数据类型,用于自动记录插入或删除操作的而时间。
    sql_variant:可变数据类型
    table:表类型
    uniqueidentitfier:GUID(全局唯一标识符)类型。

    展开全文
  • c编程语言中的数据类型是什么?c编程语言中的数据类型用于指定可以在变量中存储哪种值。变量值的内存大小和类型由变量数据类型确定。在ac程序中,每个变量或常量或数组必须具有数据类型,并且此数据类型指定要分配的...
  • 在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自作用,下面我们就主要来介绍一下MySQL数据类型DECIMAL类型作用和用法。 一般赋予浮点列值被四舍五入到这个列所指定十进制数。...
  • 当两个具有不同数据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时: 通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定所得值的数据类型。有关更多信息,请参见数据类型的优先...
  • C++中数据的基本类型 c++中数据基本类型包含整型与浮点型。C++对整型和浮点型提供了多种变体,以适合在不同情况下使用 整型 整型就是表示没有小数部分数字。c++中基本整型有char short int long long long,...
  • Swift数据类型

    2015-12-16 21:13:30
    在swift中,简单的数据类型包括整型、浮点型、字符型及字符串类型等.1.整数类型整数是指没有任何小数部分的数字,如5、78、456、-15、0等数值。整数根据有无符号又可分为有符号(正、负、零)整数或者无符号(正、零...
  • 基本数据类型

    2019-07-09 16:12:08
    基本数据类型 数值型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节) 字符型(文本型):char(2字节) 布尔型:boolean(1) 整型 整型用于表示没有小数部分数值,它允许...
  • Arduino库,实现Fraction数据类型(实验性) 描述 分数库实现小数(也称为Q)(整数是Z,浮点数/双精度数是R),然后转换为浮点数。 该代码具有许多限制,其中包括: 分母最大为4,以保持代码简单地乘法和除法 ...
  • 我们将数据类型分为标量类型与复合类型。 标量类型 标量类型表示一个单一值。Rust具有四种主要标量类型:整数,浮点数,布尔值和字符。 整数类型: 长度有符号无符号 8i8u8 16i16u16 32i32u32 64i64u64 ...
  • Java--变量和数据类型

    2020-07-02 23:59:48
    变量是具有名称内存 1.声明变量:int num; 2.变量赋值: num=10; 3.初始化变量: int age =16; 数据类型: 基本数据类型: 数值型 :①整数型 byte (-128~127) -2(-1)~2(-1)-1 Int Short long(long类型数据...
  • number数据库表中Testing列显然具有整数数据类型。您可以通过查询EXPLAIN Testing来检查数据类型。如果它具有整数数据类型,则number值在存储到表中之前被强制转换为整数。如果您希望存储小数,则需要先更改表格:...
  • 提供十进制数据类型,并且存储为十进制数序列; 有界精度:用于存储数字位数是固定,可以通过decimal.getcontext().prec=x 来设定,不同数字可以有不同精度 浮点:十进制小数点位置不固定(但位数是固定...
  • C# decimal类型

    千次阅读 2019-06-17 13:59:10
    decimal关键字表示 128 位数据类型。 同浮点型相比,decimal...decimal虽然是128位,但这只是因为它的小数位可以很多,但整体数值范围却没有double大。 类型 精度 范围 占用位 decimal 28~29位有效 ...
  • 1.结构体和运算

    2017-08-21 20:55:00
    但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。...
  • SELECT CAST(10.6496 AS int) 结果为?

    千次阅读 2004-06-30 14:46:00
    具有不同小数位数的数据类型进行转换时,值将被截断为最精确的数位。例如,SELECT CAST(10.6496 AS int) 的结果为 10。 转换时,若目标数据类型的小数位数小于源数据类型的小数位数,则要转换的值将被四舍五入。...
  • 2:每一个数据值的数据类型、精度和小数位数必须与相应的列匹配。 3:不能为标识列指定值。 4:如果在设计表的时候就指定了某列不允许为空,则必须插入数据。 5:插入的数据项,要求符合检查约束的要求。 6:...
  • 24、数值计算:sql里数值计算是怎么样?1/10怎么是0?numeric/numeric和int/int区别是? 如果算术运算符有两个相同类型表达式,结果就为该数据类型,并且具有对此类型定义精度和小数位数。...
  • C语言之路2

    2016-03-15 19:41:37
    对于C语言初学者来说,首先要接触东西便是数据类型。 ...1/23,则是无限不循环小数具有无穷位数。而对于计算机来说,数据都存放在存储单元中,因为存储单元是由有限字节构成有限空间,所以
  • js中常用函数

    2015-02-04 20:44:02
    typeof : 查看数据类型,如: var sTemp = "test string";...toFixed() 方法返回具有指定位数小数的数字字符串表示,如: var oNumberObject = new Number(68);  alert(oNumberObject.toFixed(2)); //输出
  • 2:凡是涉及到价格统一采用decimal,例如本项目中单价如下: product_price decimal(8,2) not null comment ‘单价’, 表示具有8整数,以及两位小数,总共10。 3:因为库存需要计算(加减),所以此处设置为int...
  • SQL基本操作

    2017-04-09 15:26:10
    1. 常用数据类型数据类型 解释 INTEGERH 或 INT 4个字节长度整数 SMALLINT 2个字节长度整数 NUMERIC(m, n) 或 DECIMAL(m, n) 或 DEC(m, n) 具有m总位数包括n为小数的定位小数 FLOAT(n) 具有n二进制精度...
  • mysql中浮点型相关的数据类型float、double、decimal等,建立是有两个参数,如FLOAT(Length, Decimals). Length:整个字段的长度,包括整数部分和小数部分。 Decimals:小数部分的长度。 例如设置FLOAT(4,1),即...
  • SQL Union 知识备忘

    2010-11-19 17:01:00
    B:对应列的数据类型可以不同但是必须兼容(所谓的兼容是指两种类型之间可以进行隐式转换,不能进行隐式转换则报错)。也可以用显式转换为相同的数据类型。 (当数据类型不同时,则根据数据类型优先级...
  • sqlite3使用心得

    2015-08-20 09:12:18
    每个数据值的数据类型、精度和小数位数必须与相应的列匹配 不能为标识列指定值,因为它的数字是自动增长的; 如果在设计表的时候就指定了某列不允许为空,则必须插入数据; 具有缺省值的列,可以使用...
  • mysql从删_mysql

    2021-01-21 04:21:21
    就是小数DateChar/vachar字符 char是固定长度的字符,而vachar字符 长度是可增长的Int取值范围(±十位整数的十一位就不行,那就用bigint范围是±20位的整数)约束常见的Primary key主键约束或主码约束,具有唯一性...

空空如也

空空如也

1 2 3 4 5
收藏数 92
精华内容 36
关键字:

具有小数位的数据类型