我试图屏蔽小数值。
我希望19.76
转换为1976000
,甚至1976
另一个例子是500.53
将成为50053000
。
我想使用ToString
重载而非某种转换方法,因为它更适合我的xml设置文件。
我无法找到一个不会假设小数点的IFormatProvider
,但我怀疑这是我需要的。
如果我以字符串格式省略小数,如下所示:
?myvalue
19.76
?((decimal)myvalue).ToString("####000")
"020"
我的值是四舍五入的
答案 0 :(得分:1)
答案是,如果不将字符串转换为其他格式并删除小数分隔符,则无法执行此操作。
没有删除小数点分隔符的基本格式。然后你可以尝试内置System.Globalization.NumberFormatInfo
,但它不接受空分隔符...
decimal d = 19.76m;
var format = new System.Globalization.NumberFormatInfo() { NumberDecimalSeparator = string.Empty };
// ArgumentException: Decimal separator cannot be the empty string.
d.ToString(format);
现在剩下的就是自己实现IFormatProvider
...无论如何,这将涉及手动摆弄数字以删除小数点分隔符(转换为字符串并替换,乘以生成整数等)! / p>
答案 1 :(得分:0)
您可以尝试这样的事情:
string output = myValue.ToString().Replace(".", string.Empty);
首先,调用十进制值的ToString
方法获取字符串表示形式,然后用空字符串替换字符串的单个.
字符。