我有一个 mysql 表列定义为unit_price float(12,4)
.
如果我分配一个值0.1234
,当我用 来创建远程视图时,我可以用dbsetprop
来检索。0.1234
myview.unit_price
但是,当我像这样使用 SQL 直通 (SPT) 时:
sqlexec(nHandle, "select * from table", "oResult")
结果oResult.unit_price
只显示0.12
。
如何确保返回正确的完整值?
我有一个 mysql 表列定义为unit_price float(12,4)
.
如果我分配一个值0.1234
,当我用 来创建远程视图时,我可以用dbsetprop
来检索。0.1234
myview.unit_price
但是,当我像这样使用 SQL 直通 (SPT) 时:
sqlexec(nHandle, "select * from table", "oResult")
结果oResult.unit_price
只显示0.12
。
如何确保返回正确的完整值?
The length of the decimal values are defined in your FoxPro settings. Go to Tools->Options->Regional and set the Decimal Digits to a higher value.
没有明确尝试过,你可以做一些简单的数学强制来创建更大的精度,比如在你的查询中添加一个额外的列......就像......
select *, unit_price * 1.00000 as UnitPrice5 from...
这将强制将字段计算到小数点后 5 位,并且可能实际上更改结果列以正确处理此强制小数点容量。然后,您将使用“UnitPrice5”列而不是“unit_price”...
不知道这对你来说是否是个大问题,但一旦它在 VFP 中,你也有更多的控制权。