use*_*471 1 excel vba excel-vba
我想在逗号后面设置2位数的结果.
有没有快速的方法来做到这一点?因为我首先需要寻找结果.(如果positif:添加"+",则negatif让" - "和null"使它在0.00上)
Dim VariationX as Single
VariationX = 0,5
If VariationX >= 0.01 Then
VariationXString = "+" & VariationX
ElseIf VariationX = 0 Then
VariationXString = "0,00"
End If
VariationXString = Replace(VariationXString, ",", ".")
Run Code Online (Sandbox Code Playgroud)
在这个例子中结果将是"+0.5"但我想要"+0.50",因为在某些情况下,VariationX可能是"10,50","1,20"," - 2.8"或简称为"1".而且我总是需要用逗号后的2位数字.
打算使用InStr,Len和Mid,但这会为此做出很多贡献.
很抱歉很无聊,但这看起来像是自定义数字格式的工作......
数字格式的结构如下:[positive];[negative];[zero];[text].所以你想要这样的东西:
"+"#,##0.00;"-"#,##0.00;#,##0.00
Run Code Online (Sandbox Code Playgroud)
我得到0.00任何零值,+0.500.5和-0.25-0.2463.
所述表示的值是从不同的值.如果你想能够0.5在计算中使用它,将它存储起来"+0.50"会引起麻烦 - 但是将它存储为0.5并表示为+0.50不会破坏任何东西.
如果需要在代码中解决表示问题(例如,如果您希望以某种形式显示格式化的字符串值TextBox),那么您可以使用该Strings.Format函数来获得相同的结果:
Public Function PrettifyVarianceFigure(ByVal value As Double) As String
PrettifyVarianceFigure = Strings.Format$(value, _
IIf(value > 0, "+", vbNullString) & _
"0" & Application.International(xlDecimalSeparator) & "00")
End Function
Run Code Online (Sandbox Code Playgroud)
您可以Double使用标准转换函数*转换回/往返a :
Debug.Print CDbl(PrettifyVarianceFigure(0.42)) ' outputs 0.42
Run Code Online (Sandbox Code Playgroud)
*我怀疑CDbl会处理非点小数分隔符,因此您可能需要先拨Strings.Replace打电话.