Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将字符串转换为货币格式而不首先转换为数值_Vb.net - Fatal编程技术网

Vb.net 将字符串转换为货币格式而不首先转换为数值

Vb.net 将字符串转换为货币格式而不首先转换为数值,vb.net,Vb.net,此代码- Convert.ToDecimal("28.9100000000000000").ToString("c") 将包含十进制值的字符串转换为格式良好的货币值。在不首先将字符串值转换为十进制的情况下,是否可以执行此操作?为了保留特定于区域性的货币属性(货币符号、分隔符和精度),您当前的方法看起来是最好的方法 如果您知道精度并且不关心区域性,则可以执行一些简单的字符串操作: "$" & myString.Substring(0, myString.IndexOf(".") + 3

此代码-

Convert.ToDecimal("28.9100000000000000").ToString("c")

将包含十进制值的字符串转换为格式良好的货币值。在不首先将字符串值转换为十进制的情况下,是否可以执行此操作?

为了保留特定于区域性的货币属性(货币符号、分隔符和精度),您当前的方法看起来是最好的方法

如果您知道精度并且不关心区域性,则可以执行一些简单的字符串操作:

 "$" & myString.Substring(0, myString.IndexOf(".") + 3)
这个怎么样

decimalString = "28.910000000000000000"
currencyString = "$" + decimalString.SubString(0, decimalString.IndexOf('.') + 3)

当然,如果要这样做,还需要担心区域设置。可能同样容易进行数字转换,并让框架为您进行格式化。

我使用的一个简单方法:

MoneyString = string.format("{0:C}",DecimalValue)

您希望保持什么样的精度?你想让货币符号区分区域性吗?我对精度和货币符号的默认值很满意,我怀疑我在某个地方错过了一个非常明显的方法,该方法允许我在不进行转换的情况下格式化字符串。不,你什么都没有错过。默认值当然取决于当前线程和UI线程文化。谢谢,这让我放心了+1@ipr101你真的应该在你的问题中使用这种方法。它没有什么问题,而且有很多优点。它更具可读性,如果您的输入字符串不是数字,它会引发一个异常,它尊重用户对货币格式的控制面板选择,它具有区域意识……我发现这个答案很有用——尽管这个问题似乎需要一个不涉及使用小数的解决方案。