JSON中小数合法写法包括:3.14、-0.001、1e-5、2.5E+3、0.0、123.0;不支持3,14、3.14f、"3.14"等写法,且必须使用raw+JSON模式发送。

Postman 传小数作为 JSON 参数时,只要 JSON 格式合法、后端能正确解析浮点数类型,就不会出问题——小数本身不是特殊值,真正容易翻车的是精度丢失、科学计数法误写、或后端字段类型不匹配。
JSON 中写小数的合法写法有哪些
JSON 规范只接受十进制浮点字面量,不支持八进制、十六进制或 NaN/Infinity。常见合法写法包括:
-
3.14(标准小数) -
-0.001(带符号、前导零) -
1e-5或2.5E+3(科学计数法,Postman 支持,但部分老旧后端 JSON 库可能拒绝) -
0.0、123.0(尾部 .0 是合法的,不代表整数)
⚠️ 常见错误:写成 3,14(逗号分隔符,非 JSON)、3.14f(带类型后缀)、"3.14"(字符串而非数字,除非后端明确要求字符串转 float)。
Postman Body 设置必须选 raw + JSON
如果 Body 误选 form-data 或 x-www-form-urlencoded,即使你输的是 {"price": 99.99},Postman 也会把它当字符串拼进表单键值对,后端收到的是原始字符串或解析失败。必须:
- 点击
Body标签页 → 选中raw - 右上角下拉菜单选
JSON(这会自动加Content-Type: application/json) - 直接输入纯 JSON,不要包在引号里,也不要加任何注释
例如正确写法:
{"amount": 123.45, "rate": 0.085, "discount": -5.5}
错误写法:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
"{"amount": 123.45}"
(外层多了一对引号,变成字符串)。
后端接收小数时容易忽略的类型陷阱
前端传 99.99,后端用 int 或 Long 接收,会截断为 99;用 Float 可能因单精度丢失精度(如 0.1 + 0.2 != 0.3)。建议:
- Java 后端优先用
BigDecimal接收金额类小数,避免二进制浮点误差 - Spring Boot 中若用
@RequestBody接收对象,确保字段声明为BigDecimal或Double,而非float - 检查 Jackson 配置:默认会把 JSON 数字映射为
Double,但若字段是Integer,反序列化会静默失败或抛JsonMappingException
可在 Postman 的 Tests 里加断言验证返回值是否符合预期小数位:
pm.test("amount is precise", function () {
var data = pm.response.json();
pm.expect(data.amount).to.equal(123.45);
});
最常被跳过的一步:没确认后端日志里实际接收到的小数值是多少——有时候不是 Postman 没传对,而是后端框架在反序列化前就做了类型预处理或参数过滤。










