示例:
Double-Number是56.6789,结果应该是4
Double-Number是12345.67,结果应为2
Double-Number是12345.6,结果应为1
我有一个修补字符串的解决方案,但我认为有一个数学解决方案?
请在VB.NET中...
答案 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
也允许使用字符串。
带有字符串的方法将再次丢失有关无限长小数部分的信息,因为它将截断它。