10

示例 1

Dim myStr As String = "38"

我希望我的结果是38.000......


示例 2

myStr = "6.4"

我希望我的结果是6.400


实现这一目标的最佳方法是什么?我想用至少三位小数格式化一个字符串变量。

4

4 回答 4

17

使用FormatNumber

Dim myStr As String = "38"
MsgBox(FormatNumber(CDbl(myStr), 3))

Dim myStr2 As String = "6.4"
MsgBox(FormatNumber(CDbl(myStr2), 3))
于 2013-05-09T15:35:03.543 回答
3

所以如果你有

Dim thirtyEight = "38"
Dim sixPointFour = "6.4"

然后,将它们解析为数字类型的最佳方法是,Double.Parse或者Int32.Parse,您应该保持您的数据类型,直到您想要将其显示给用户。

然后,如果您想格式化一个小数点后 3 位的字符串,请执行类似String.Format("{0:N3}", value).

所以,如果你想快速解决这个问题,

Dim yourString = String.Format("{0:N3}", Double.Parse("38"))

会做。

于 2013-05-09T15:48:48.910 回答
2

看看“标准数字格式字符串”

float value = 6.4f;
Console.WriteLine(value.ToString("N3", CultureInfo.InvariantCulture));
// Displays 6.400
于 2013-05-09T15:26:36.253 回答
1

在伪代码中

decpoint = Value.IndexOf(".");
If decpoint < 0 
  return String.Concat(value,".000")
else
  return value.PadRight(3 - (value.length - decpoint),"0")

如果它是字符串,请将其保留为字符串。如果它是一个数字,则将其作为一个传递。

于 2013-05-09T16:15:33.927 回答