从货币中删除小数

时间:2013-03-18 20:36:14

标签: c# string-formatting currency

我正在转换数据以进行导出。

该文件以美分显示数据,而不是美元。

所以1234.56需要打印为123456

有没有办法用string.Format

来做到这一点

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

4 个答案:

答案 0 :(得分: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>

这样的事情可以解决问题,并且是本地化的!

答案 1 :(得分:2)

这是一个渲染问题。当然,乘以100来获得分数就能胜任。

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

答案 2 :(得分:0)

如果这么简单,只需执行String.Replace('.','');

答案 3 :(得分:0)

如果您知道值将始终具有2个小数位,那么这样做非常简单

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

output = 123456