TapCub 正式上线:统计、分析、客服一个平台免费用
术语表

什么是数据类型?编程、统计和埋点里的例子

数据类型告诉计算机(或分析人员)一个字段存的是什么样的值、能对它做什么运算。常见的编程类型、JSON 类型、统计学的数据类型,以及类型错误怎样悄悄地让统计出错。

卢卡斯·海斯 审核人 陈屿 又称 数据类型 最后更新 2026 年 11 月 7 日 术语表

一句话回答

数据类型是一种分类,告诉程序、数据库或分析人员一个字段存的是什么样的值,比如整数、小数、文本、真 / 假或日期,从而决定能对它做哪些运算。

什么是数据类型?

数据类型告诉程序、数据库或分析人员:一个字段里存的是什么样的值,因而能对它做哪些操作。两个整数可以相加,两段文字不行;日期可以按时间排序,但前提是它存成了日期。类型选对了,你得到的是收入合计;选错了,得到的是报错,或者更糟,一个悄悄出错的数字。

这个词常见的有两层意思:编程里的数据类型(整数、字符串、布尔……)和统计学里的数据类型(定类、定序、定距、定比)。做数据分析两者都会用到。

常见的编程数据类型

类型存什么例子需要注意
整数(int)整数42、-7非常大的 ID 可能溢出
浮点数(float、double)带小数的数19.9、0.333精度问题:0.1 + 0.2 等于 0.30000000000000004
定点小数(decimal)精确的小数19.90慢一些;金额用它,或者用「分」存成整数
字符串(str、text)文本"pro"、"00123"存成文本的数字没法相加
字符(char)单个字符'A'底层语言以外很少用
布尔(bool)真或假true很多语言里文本 "false" 会被当成真
日期 / 时间 / 时间戳时间点2026-11-07T09:30:00Z时区
空值(null、None)没有值null不等于 0 或 ""
数组 / 列表有序集合["red", "blue"]很多工具难以按它筛选
对象 / 字典键值对{"plan": "pro"}嵌套数据做报表前要拍平
枚举(enum)固定集合中的一个`"free" \"pro" \"vip"`改了集合,旧数据就对不上

JSON 的数据类型

大多数统计数据以 JSON 格式传输,而 JSON 只有六种类型(RFC 8259):字符串、数字、布尔、空值、对象、数组。它没有日期类型,也不区分整数和小数。所以日期通常用 ISO 8601 字符串(2026-11-07T09:30:00Z)或 Unix 时间戳传递,金额也常用最小单位(分)存成整数。

统计学里的数据类型

统计学按「哪些比较有意义」给数据分类,来自 S. S. Stevens 提出的测量尺度:

尺度含义例子能用的汇总方式
定类类别,没有顺序国家、浏览器、套餐计数、众数
定序有顺序的类别,间隔不等满意度 1–5 分、衣服尺码中位数、百分位
定距间隔相等,没有真正的零点摄氏温度、年份平均数、差值
定比间隔相等,有真正的零点收入、会话时长、浏览量平均数、比值(「长一倍」)

定类和定序属于定性数据,定距和定比属于定量数据。定序数据可以存成数字(比如 1–5 分),但求平均就默认了各档间隔相等,实际上往往并不相等。数据还可以分为离散的(计数:3 笔订单)和连续的(测量:3.27 秒)。

数据类型在统计分析里为什么重要

  • 求和、平均需要数字:价格传成 "19.90" 就是文本,大多数工具求和时会跳过或拒收。
  • 排序取决于类型:作为文本,"100" 会排在 "19.90" 前面,因为逐字符比较时 1 小于 9。
  • 布尔传成文本,一个属性会分裂成 true、"true"、"True"、"1" 好几种值。
  • 日期没有时区,别的地区的人看报表时,事件会跨过午夜被挪到另一天。
  • ID 存成数字会丢掉前导零(00123 变成 123),在 JavaScript 里超过 2⁵³ 还会丢精度。

示例:收入被少算

示例数据:某月 5,000 个 purchase 事件,平均价格 40 美元。旧版本 App 把 price 作为字符串上报,新版本作为数字上报。

事件数按 40 美元均价计的收入
price 是数字4,100$164,000(计入合计)
price 是字符串900$36,000(未计入)
合计5,000$200,000

看板上显示 164,000 美元:少了 18% 的收入,而且这个缺口会随旧版本用户的占比变大或变小,看起来就像一个真实的趋势。整个过程没有任何报错,只是类型错了。修复要两头做:App 改成上报数字,同时在入库时校验类型,让问题在出现的当天就被发现。

事件属性的类型规则

  1. 在埋点方案里定好每个属性的类型,之后不要改;需要变就新增一个属性。
  2. 数字就传数字,金额统一单位和币种。
  3. 布尔传 true / false,不要传字符串。
  4. 日期用带时区的 ISO 8601,或者 Unix 时间戳。
  5. ID 传字符串,前导零和长数字才能保住。
  6. 类别值限定在已知集合里,控制基数。

TapCub 里的数据类型

  • 网站上 tapcub.track(name, props) 最多保留 20 个属性键,且只保留字符串、数字和布尔;日期请用 ISO 8601 字符串传。参见跟踪自定义事件。
  • 全端分析 › 数据管理 › 属性字典 记录每个属性键的类型:字符串、数字、布尔、日期时间或列表。你确认过的类型,之后的扫描不会再覆盖。
  • 同一个页面的校验规则可以要求预期类型,违反时警告、删除该属性或拦截事件。上面那种字符串价格,当天就能被发现。

资料来源

这个解释清楚吗?

我们会根据反馈修改和补充这篇内容。

卢卡斯·海斯

数据工程师

聚焦事件设计、数据质量与采集流程,分享可验证的实施方法,帮助团队建立可靠的分析基础。

常见问题

常见追问

大家看完定义后最常问的几个问题。

还有其他问题?

直接和 TapCub 团队聊聊——工作日通常几小时内回复。

基本的数据类型有哪些?

整数、浮点数或定点小数、字符串(文本)、布尔(真 / 假)、日期时间。大多数语言还有空值、数组或列表、对象或字典。

统计学里的四种数据类型是什么?

定类(没有顺序的类别)、定序(有顺序的类别)、定距(间隔相等但没有真正的零点,比如摄氏温度)、定比(间隔相等且有真正的零点,比如收入、会话时长)。

数据类型在统计分析里为什么重要?

因为求和、平均、排序和筛选都依赖类型。存成文本的价格没法求和,文本「100」还会排在「19.90」前面。

日期是字符串还是数字?

概念上都不是,它是单独的一种类型。JSON 这类格式没有日期类型,所以日期一般用 ISO 8601 字符串(2026-11-07T09:30:00Z)或 Unix 时间戳(数字)传递。

在你自己的网站上看这个数字

加一行脚本就能开始,网站和 App 都能接,几分钟内就能看到第一批报表。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie