Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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
C# 从货币中删除小数_C#_String Formatting_Currency - Fatal编程技术网

C# 从货币中删除小数

C# 从货币中删除小数,c#,string-formatting,currency,C#,String Formatting,Currency,我正在为导出转换数据 该文件以美分而不是美元显示数据 所以1234.56需要打印为123456 有没有办法用string.Format 或者是乘以100的唯一解决方案?您可以使用string.Replace(“.”,string.empty)。但这并不完全是本地化的。您可以在检查“,”以及国际货币的情况下添加。但这就是我要做的 [编辑] 我还发现: “N”数字说明符允许您更改用于分隔整数和小数部分的符号 <code> decimal num = 123.456m; NumberF

我正在为导出转换数据

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

所以1234.56需要打印为123456

有没有办法用
string.Format

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

您可以使用string.Replace(“.”,string.empty)。但这并不完全是本地化的。您可以在检查“,”以及国际货币的情况下添加。但这就是我要做的

[编辑]

我还发现:

“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>

像这样的东西应该可以做到,而且是本地化的

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

这是一个渲染问题。当然,乘以100分钱就可以了


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

如果你知道数值总是有两个十进制位置,那么这样做很简单

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

output=123456

这就是为什么我想要一个不乘以100的解决方案,这就是为什么我要寻找一个
字符串;它是局部的,干净的,a-1是因为。。。什么?只是投反对票并没有什么帮助。你为什么要这么做?+1(抵消投反对票)。这个问题没什么问题。@QuinnWilson,因为使用此文件的系统期望的金额是美分,而不是美元……有时。因此,它必须是可配置的。使用string.Format string似乎是一个在需要时可以解决这个问题的解决方案。糟糕的是,不能使用空字符串作为分隔符,但这似乎效果很好。我不得不创建一个新的文化,因为现有的文化是只读的。是的,我会编辑文章,包括你不能使用空分隔符。