我们有一个 .net visual basic 项目,该项目使用Strings.formatnumber
this 所使用的函数,因为它具有灵活性,即动态变量允许的小数位数。但是我遇到了一个令人讨厌的错误,因为此函数似乎将所有内容四舍五入为 15 位
所以
? Strings.FormatNumber("123456789012345.66", 2,Microsoft.VisualBasic.TriState.True,Microsoft.VisualBasic.TriState.False,Microsoft.VisualBasic.TriState.False)
Results 123456789012345.00
? Strings.FormatNumber("12345678901234.66", 2,Microsoft.VisualBasic.TriState.True,Microsoft.VisualBasic.TriState.False,Microsoft.VisualBasic.TriState.False)
Results 12345678901234.60
? Strings.FormatNumber("1234567890123.66", 2,Microsoft.VisualBasic.TriState.True,Microsoft.VisualBasic.TriState.False,Microsoft.VisualBasic.TriState.False)
Results 1234567890123.66
? Strings.FormatNumber("1234567890123456666.66", 2,Microsoft.VisualBasic.TriState.True,Microsoft.VisualBasic.TriState.False,Microsoft.VisualBasic.TriState.False)
Results 1234567890123460000.00
所以两个问题
- 为什么这个函数会这样做?
- 是否有我们可以使用的 .net 函数将字符串转换为数字并返回一个字符串,并且小数位数可以是动态的?