✅ 回答您的问题:使用 string 替代 number 是最佳实践
一、Kubernetes 生态的最佳实践
- 当值可能超过 float64 精度时,使用 string
Kubernetes 社区的普遍做法:
- Resource Quantities (cpu, memory) - 使用 resource.Quantity,JSON 序列化为 string
- 例:"1.5", "100Mi", "2Gi"
- Int64 - Kubernetes API 使用 string 表示可能很大的整数
- 例:metadata.generation 在 JSON 中是字符串
- OpenAPI Schema 类型的限制
┌───────────────┬────────────────┬────────────────┐
│ OpenAPI 类型 │ 精度 │ 适用场景 │
├───────────────┼────────────────┼────────────────┤
│ type: number │ float64 (2^53) │ 小数、小整数 │
├───────────────┼────────────────┼────────────────┤
│ type: integer │ int64 (2^63-1) │ 有符号整数 │
├───────────────┼────────────────┼────────────────┤
│ type: string │ 无限制 │ 大整数、精确值 │
└───────────────┴────────────────┴────────────────┘