我正在转换数据以进行导出。
该文件以美分显示数据,而不是美元。
所以1234.56需要打印为123456
有没有办法用string.Format
?
或者是唯一能够乘以100的解决方案吗?
答案 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