C# 返回错误值的Object.ToString()

C# 返回错误值的Object.ToString(),c#,C#,例如,如果我的对象值为1.0,.ToString()返回的是1,而不是1.0 但如果该值为例如1.5,则.ToString()返回1.5 为什么c#中会出现这种行为 注意:在这种情况下,对象是一个双精度值。它不是“错误的”,它是实际数据类型的默认格式 如果希望它始终为1.0,则需要将其格式化为1.0 String.Format("{0:0.0}", myObject); or ((double)myObject).ToString("0.0"); 它不是“错误的”,它是实际数据类型的默认格式

例如,如果我的对象值为1.0,.ToString()返回的是1,而不是1.0

但如果该值为例如1.5,则.ToString()返回1.5

为什么c#中会出现这种行为

注意:在这种情况下,对象是一个双精度值。

它不是“错误的”,它是实际数据类型的默认格式

如果希望它始终为1.0,则需要将其格式化为1.0

String.Format("{0:0.0}", myObject);
or
((double)myObject).ToString("0.0");
它不是“错误的”,它是实际数据类型的默认格式

如果希望它始终为1.0,则需要将其格式化为1.0

String.Format("{0:0.0}", myObject);
or
((double)myObject).ToString("0.0");

为什么1.0返回1.0而不说1.00?1.23也将返回两位小数,对吗


C#(我猜大多数其他语言也是如此)会打印出小数点,如果它们是重要的。小数点后的一串零不重要,它们不会改变数字的值。

为什么1.0返回1.0而不说1.00?1.23也将返回两位小数,对吗


C#(我猜大多数其他语言也是如此)会打印出小数点,如果它们是重要的。小数点后的一串零不重要,它们不会改变数字的值。

请查看文档


这是预期结果。

请检查文档

这是预期结果。

尝试
value.ToString(“F1”)

尝试
value.ToString(“F1”)

这是因为默认情况下使用的是“G”通用格式说明符。这意味着数字将转换为最紧凑的形式,包括以下规则:

如果需要,结果包含一个小数点和尾随的零 小数点后省略

来源:

这是因为默认情况下使用的是“G”,通用格式,说明符。这意味着数字将转换为最紧凑的形式,包括以下规则:

如果需要,结果包含一个小数点和尾随的零 小数点后省略


来源:

这没有错。提示:1d==1.00d的结果是什么?现在,您可以指定特定的格式以获得所需的文本结果。为什么人们必须投票否决初学者的问题。这是你说“你是个傻瓜”的方式吗?这个问题提得很好,他问的问题也很清楚。所以我会把重点还给你。这没有错。提示:1d==1.00d的结果是什么?现在,您可以指定特定的格式以获得所需的文本结果。为什么人们必须投票否决初学者的问题。这是你说“你是个傻瓜”的方式吗?这个问题提得很好,他问的问题也很清楚。所以我会告诉你重点。这通常是默认行为,是的。这通常是默认行为,是的。