如何获取VB.NET中双数字逗号后的数字位数?

时间:2015-11-16 11:30:04

标签: vb.net double

示例:

Double-Number是56.6789,结果应该是4

Double-Number是12345.67,结果应为2

Double-Number是12345.6,结果应为1

我有一个修补字符串的解决方案,但我认为有一个数学解决方案?

请在VB.NET中...

3 个答案:

答案 0 :(得分:2)

拆分原始数字并获得上部索引的长度(1)

if (Meteor.isClient) {
  console.log('On startup');
  console.log(TestCollection.find().fetch());

  Meteor.setTimeout(function() {
    console.log('After 50ms');
    console.log(TestCollection.find().fetch());
  }, 50);
}

编辑:替换“。”使用小数分隔符确保在不同文化中使用

答案 1 :(得分:0)

您可以尝试这样:

Dim x As String = CStr(56.6789)
Dim count = x.Length - InStr(x, ".")

答案 2 :(得分:0)

一种方法是继续敲掉整个部分,乘以10,重复直到你有一个整数:

Dim x As Double = 1.23456
Dim count As Integer = 0
While Math.Floor(x) <> x
    x = (x - Math.Floor(x)) * 10D
    count = count + 1
End While

请注意,如果存在无限多个小数位,这将失败 - 因此您可以对其设置限制(If count > 100 Then Exit While

另一种方式是这样,它转换为字符串,但不需要对分隔符进行硬编码。

Dim x As Double = 1.23456
Dim x0 As Double = x - Math.Floor(x)
Dim x0String As String = x0.ToString()
Dim count As Integer = x0String.Substring(2, x0String.Length - 2).Length

使用Application.DecimalSeparator也允许使用字符串。

带有字符串的方法将再次丢失有关无限长小数部分的信息,因为它将截断它。