我正在转换数据以进行导出。
该文件以美分而不是美元显示数据。
所以 1234.56 需要打印为 123456
有没有办法做到这一点string.Format
?
或者是乘以 100 的唯一解决方案?
我正在转换数据以进行导出。
该文件以美分而不是美元显示数据。
所以 1234.56 需要打印为 123456
有没有办法做到这一点string.Format
?
或者是乘以 100 的唯一解决方案?
您可以使用 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>
像这样的东西应该可以解决问题,并且是本地化的!
那是渲染问题。当然,乘以 100 得到美分就可以了。
美国使用小数点来区分美元和美分。但并非所有国家都这样做。您的“乘以 100”解决方案仅适用于使用 100 个小数单位表示单个整数的货币。(日元在日本并非如此。)
If it is that simple, just do String.Replace('.','');
如果您知道这些值将始终有 2 个小数位,那么这样做非常简单
var strVar = 1234.56;
var somevalues = string.Format("{0:######}", strVar * 100);
output = 123456