2013-03-18 80 views
2

我正在转换数据以进行导出。从货币中删除小数点

该文件以美分而非美元显示数据。

于是1234.56需要将打印为123456

有没有办法做到这一点与string.Format

或者是唯一的解决方案乘以100?

+0

而且-1因为.. 。 什么?只是downvoting并不完全有帮助。 – CaffGeek 2013-03-18 20:48:37

+0

你为什么要这么做? – 2013-03-18 20:51:57

+2

+1(抵消downvote)。这个问题没有错。 – 2013-03-18 20:56:17

回答

3

您可以使用string.Replace(“。”,string.empty)。但这并不完全是本地化的。如果您检查“,”以及国际货币,则可以添加。但那就是我会做的。

[编辑]

而且刚发现这一点: http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

“n”个数字说明符允许你改变用于分离的整数和小数部分的符号。

<code> 

decimal num = 123.456m; 
NumberFormatInfo ci = CultureInfo.CurrentCulture.NumberFormat; 
ci.CurrencyDecimalSeparator = " "; // You can't use string.Empty here, as it throws an exception. 
string str = num.ToString("N", ci).Replace(" ", string.Empty); 

</code> 

这样的事情应该做的伎俩,并本地化!

+0

吮吸你不能使用空字符串作为分隔符,但这似乎工作得很好。尽管如此,我必须创造一种新的文化,因为现有的文化是只读的。 – CaffGeek 2013-03-18 21:20:05

+0

是的,我将编辑帖子以包括您不能使用空白分隔符。 – 2013-03-18 21:21:41

0

如果它就是这么简单,只要做String.Replace('.','');

2

这是一个渲染问题。当然,乘以100得到美分即可完成工作。

美国使用小数点将美元与美分分开。但并非所有国家都这样做。您的“乘以100”解决方案仅适用于使用100个小数单位表示单个整数的货币。 (不是在日本的情况下日元)。

+0

这就是为什么我想要一个不乘以100的解决方案,这就是为什么我正在寻找'string.Format'解决方案。 – CaffGeek 2013-03-18 20:48:18

+1

查看我的解决方案底部;它是本地化和干净的。 – 2013-03-18 20:50:47

0

,如果你知道值总是有2位小数,然后做到这一点很简单

var strVar = 1234.56; 
var somevalues = string.Format("{0:######}", strVar * 100); 

output = 123456