十进制?字符串删除尾随零的C#

时间:2012-12-19 07:57:08

标签: c# oracle

我曾尝试使用来自少数类似帖子的信息进行此转换(十进制?到字符串),但不知何故失败(“G29”;替换(“0,00”,“”)...)所以会是什么转换91.5M十进制的最佳方法是什么?字符串,以便我们有91,5?

    string a;
    decimal? number = 91.5M;
    a =  number.ToString(); 

在这个例子中a = 91.5,一切都很好。但是由于一些奇怪的原因,当我从Oracle数据库中获取一堆对象并尝试将它们转换为这种特定格式而没有尾随零时,我只是找不到这样做的方法,因为总是最终输出为91,50而不是91,5

2 个答案:

答案 0 :(得分:2)

var a = number.ToString("G29");

这应该删除输出字符串中的尾随零。这方面存在潜在的缺陷,因为非常小的值将表示为“xEx”格式。不确定这是否适合您。

答案 1 :(得分:1)

如果你具体想要最多一个小数位,没有前导零,你可以试试这个:

string str = number.ToString("0.#");

添加更多#会提高精度,但结果不会包含非有效数字。 如果您必须保留尾随零,请将#替换为0

您还可以使用第二个IFormatProvider参数指定分隔符的格式:

string str = number.ToString("0.#", fr-FR); // 5 => 5   5,123 => 5,1 (comma)
string str = number.ToString("0.#", en-US); // 5 => 5   5,123 => 5.1 (dot)