vb.net货币显示有四个零,而不是两个

vb.net货币显示有四个零,而不是两个,vb.net,currency,tostring,Vb.net,Currency,Tostring,当我从sql server获取货币字段到vb.net代码时,我总是得到1.0000而不是1.00。如何在vb.net中将其转换为1.00 TD = New HtmlTableCell If Not SqlDR("Price") Is DBNull.Value Then TD.InnerHtml = SqlDR("Price") Else TD.InnerHtml = "0.00" End If SQLDR是我的sql数据读取器,这是因为sql Server以4位小数存储货币字

当我从sql server获取货币字段到vb.net代码时,我总是得到1.0000而不是1.00。如何在vb.net中将其转换为1.00

TD = New HtmlTableCell

If Not SqlDR("Price") Is DBNull.Value Then
    TD.InnerHtml = SqlDR("Price")
Else
    TD.InnerHtml = "0.00"
End If

SQLDR是我的sql数据读取器

,这是因为sql Server以4位小数存储货币字段。要使用2查看它,请使用以下方法

有关设置数字格式的更多方法,请参见这些页面


输出数据时需要格式化数据:

myMoney.ToString("0.00");

您确定没有将值的显示与实际值混淆吗

1.0000和1.00是相同的值


如果要在将值转换为字符串时仅显示一定数量的位置,则应查看以确定要传递给Decimal、Double、Single结构上的ToString方法的格式字符串,或string类上的static format方法。

显示您正在使用的代码,所以我们可以告诉您如何修复它。@Gabriel McAdams:SQL Server中的小数位数与输出上显示的小数位数无关。如果需要的话,可以用或多或少的小数位来显示。重要的是SQL Server中的货币类型在进入.NET空间时转换为什么类型,即使如此,该类型可以保留多少小数位与此无关,因为人们总是可以在显示中添加或删除小数位。那么,为什么要在您的答案中引用这一事实呢?@Casper:OP-typed
当我从sql server获取货币字段到vb.net代码时,我总是得到1.0000而不是1.00
。问题是如何以预期的方式显示它,而不是SQL Server如何返回它。这正是您的答案所缺少的。SQL Server无法控制显示特征,它返回一个值,然后将该值转换到.NET类型的系统中。显示与此无关。
myMoney.ToString("0.00");