如何访问MS Access中号码的小数部分?更具体地说,我只想要小数点后的分量,但不包括小数点。这也必须适用于所有整数。我已经看到其他SQL引擎的答案,但他们不能在Access中工作。由于我实际工作的敏感性,我不能比这更具体。
例如,如果给出以下数字,则输入位于左侧,输出位于右侧。输出可以是文本或数字。
Source Correct Incorrect1 Incorrect2 10.0 0 0.0 .0 3.14159 14159 0.14159 .14159 45.65 65 0.65 .65 173.0 0 0.0 .0 143.15 15 0.15 .15
如果我使用C#,以下代码会给我我想要的内容:
private string getDecimalComponent(double input)
{
String strInput = input.ToString();
if (strInput.Contains('.'))
{
return strInput.Split('.')[1];
}
else
{
return "0";
}
}
答案 0 :(得分:1)
减去值的整数部分。
实施例: 4.25 - Int(4.25)= 0.25
或者,作为示例SQL表达式:
SELECT
[myDecimalNumber],
[myDecimalNumber] - Int([myDecimalNumber]) as [rightOfDecimal]
FROM tableA
答案 1 :(得分:0)
类似的东西:
SELECT 3.14%1 AS mycolumn from mytable
答案 2 :(得分:0)
取决于具体情况。例如,如果这是在文本框中,您可以使用InStr查找小数,然后使用Mid()函数获取它后面的数字。如果它是算术方程的一部分,那么我将使用Int()函数并从另一个中减去一个数来获得差异。
如果您可以详细说明它的使用方式,以及在什么情况下,我可以编辑我的答案,为您提供更多细节。
编辑:了解更多信息后,试试这个:
Public Function GetParts(Temp1 as Double)
Temp2 = Int(Temp1)
Temp3 = Mid(Temp1, InStr(Temp1, ".") + 1)
MsgBox Temp2
MsgBox Temp3
End Function
答案 3 :(得分:0)
SELECT DecimalPlaces(MyColumn) FROM MyTable
其中上面的用户定义函数包含以下代码:
Function DecimalPlaces(ByVal value As Double) As String
Dim intPartLen As String
intPartLen = Len(CStr(CInt(Abs(value))))
If Len(CStr(Abs(value))) > intPartLen Then
DecimalPlaces = Mid(CStr(Abs(value)), intPartLen + 2)
Else
DecimalPlaces = "0"
End If
End Function
它避免了常见错误,所以是
与语言环境无关-与任何小数点分隔符一起使用(仅假定它是单个字符)
保留精度-避免减法,仅从字符串表示中获取结果
注意:确实需要进行这些Abs()
通话(提示:-0.1
)