来自屏蔽文本框的值四舍五入

Value from masked text box getting rounded

我正在尝试将 Single 的值设置为 Masked Text Box 的转换值。

我的蒙版文本框的蒙版是“00.000000°”,意思是它最多填充6位小数,并以度数显示。所以假设我的初始值为40.12345,它会显示“40.123450°”。

这是我转换它的代码行,其中 d 是 Single,msk 是 Masked Text Box:

d = CSng(msk.Text.Replace("°", "").Trim)

但是,无论出于何种原因,d 的值最终成为框的内容,但四舍五入到最接近的小数点后 5 位!所以假设我将其更改为 40.123457d 的值最终变为“40.12346”。

我不知道为什么会这样。

A Single has low precision. If you want a precise number, I would suggest you use Decimal 代替。

Dim d As Decimal

d = Decimal.Parse("40.123457°".Replace("°", "").Trim)