将字符串转换为 double 时,输出没有前导零

When converting a string to double the output is whitout leading zeros

我有一个文本框,可以从中获取字符串值。 使用时

tbValue = (Convert.ToDouble(tbValue.text) * -1.0).toString();

输出总是没有前导零。

当值为 0,8 时,它 returns -8 在文本框中。

有没有办法在使用 Convert.ToDouble 时保留前导零?

您使用的是“,”吗? 它适用于“。”

    string input = "0.8";
    string tbValue = (Convert.ToDouble(input) * -1.0).ToString();

https://dotnetfiddle.net/XAsNhe

首先,您的错误与“前导零”无关。 double 是一个值,值没有多余的前导零(如 003.3 中那样)- 在格式化输出时添加这些零。

如果您输入的“0.8”被识别为“8”,这不是前导零问题,这是小数分隔符问题 - “ToDouble”部分假设 - 可能 - 有一个“。”作为小数分隔符,因此忽略“,”。如果使用正确的系统区域设置解析该数字,则该数字只是正确的数字(默认为系统语言)。您可以在 Parsing 中给出明确的语言环境,检查 ToDouble 的所有重载。

这项工作

string tbValue = (Convert.ToDouble(tbValue.Text.Replace(",","."), CultureInfo.InvariantCulture) * -1.0).ToString();