3

我尝试使用来自几个类似帖子的信息进行这种转换(十进制?到字符串),但不知何故失败了(“G29”;替换(“0,00”,“”)...)那么最好的方法是什么转换 91,5M 十进制?串起来,这样我们就有 91,5?

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

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

4

2 回答 2

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

这应该删除输出字符串中的尾随零。这有一个潜在的缺陷,因为非常小的值将被表示为“xEx”格式。不确定这对您来说是否有问题。

于 2012-12-19T08:01:27.820 回答
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)
于 2012-12-19T08:32:50.027 回答