在C#中将0.5转换为0.50

Roh*_*nsi 5 c#

我有一个持有0.5的字符串.我必须转换为0.50.

我尝试过以下方法,但没有任何效果.请帮助

hdnSliderValue.Value是0.5,我想workFlow.QualityThresholdScore为0.50

workFlow.QualityThresholdScore = Convert.ToDecimal(String.format("{0:d}",hdnSliderValue.Value));

workFlow.QualityThresholdScore = Convert.ToDecimal(String.format("{0:0.00}",hdnSliderValue.Value));
Run Code Online (Sandbox Code Playgroud)

有任何内置函数或我将不得不做字符串处理来实现这一目标.

Jon*_*eet 8

最简单的方法可能使用字符串转换:

string text = "0.5";
decimal parsed = decimal.Parse(text);
string reformatted = parsed.ToString("0.00");
decimal reparsed = decimal.Parse(reformatted);

Console.WriteLine(reparsed); // Prints 0.50
Run Code Online (Sandbox Code Playgroud)

这虽然很难看:(

你当然可以通过首先解析原始字符串,然后搞乱小数的内部格式做到这一点 - 但这会非常困难.

编辑:好的,如果它是一个国际化的问题,这里有一个控制台应用程序,它应该绝对打印出0.50:

using System;
using System.Globalization;

class Test
{
    static void Main()
    {
        CultureInfo invariant = CultureInfo.InvariantCulture;
        string text = "0.5";
        decimal parsed = decimal.Parse(text, invariant);
        string reformatted = parsed.ToString("0.00", invariant);
        decimal reparsed = decimal.Parse(reformatted, invariant);

        Console.WriteLine(reparsed.ToString(invariant)); // Prints 0.50
    }
}
Run Code Online (Sandbox Code Playgroud)