I'm testing with Pro 3.3 and SQL Server 16.0.4120.1 (what I have handy).
import arcpy
fields = []
for p in range(1, 10):
for s in range(1, p):
fields.append(
dict(
field_name=f"f_{p:02}_{s:02}",
field_type="FLOAT",
field_alias=f"Precision: {p}, Scale: {s}",
field_precision=p,
field_scale=s,
)
)
for f in fields:
arcpy.AddField_management(
r'<my table>',
**f
)
print(arcpy.GetMessages())
The fields are created as numeric(p, s), but ArcGIS treats any precision >6 as a DOUBLE: