C# 在toString中保留小数点

C# 在toString中保留小数点,c#,winforms,textbox,rounding,tostring,C#,Winforms,Textbox,Rounding,Tostring,有没有办法使“double.toString()”的结果字符串包含double的确切值 比如说 double d = 123.0 -> toString() will be "123" 我在使用自定义格式.toString(#.0”)中找到了一点解决方案,但是如果我想添加更多的小数位数,我回到了开始的位置 double d = 123.00 -> toString("#.0") will be 123.0 double d = 123.0 -> toStr

有没有办法使“double.toString()”的结果字符串包含double的确切值

比如说

double d = 123.0   ->   toString() will be "123"
我在使用自定义格式
.toString(#.0”)
中找到了一点解决方案,但是如果我想添加更多的小数位数,我回到了开始的位置

double d = 123.00   ->  toString("#.0") will be 123.0
double d = 123.0    -> toString("#.00") will be 123.00
我之所以尝试这样做,是因为我有一些自定义文本框,它们必须使用与实际显示的值不同的值,并且当尝试在该文本框中输入您自己的值时,当您尝试在小数位中输入零时,该文本框将忽略您的文本。因此,我需要
toString
值等于
double
的确切值,以便正确输入该数字

多谢各位

有没有办法使“double.toString()”的结果字符串包含double的确切值

它确实包含
double
的精确值,但
double
不存储123与123.0和123.00之间的任何差异

decimal
存储差异,但是,如果您仍然关心精确的十进制数字,则更合适

另一方面,听起来你在错误的地方做比较:

我之所以尝试这样做,是因为我有一些自定义文本框,它们必须使用与实际显示的值不同的值,并且当尝试在该文本框中输入您自己的值时,当您尝试在小数位中输入零时,该文本框将忽略您的文本

不要比较字符串值-解析值(到
十进制
双精度
),然后比较解析后的值

这也将防止前导零出现问题,其中“0123”和“123”表示相同的值,但是不同的字符串

有没有办法使“double.toString()”的结果字符串包含double的确切值

它确实包含
double
的精确值,但
double
不存储123与123.0和123.00之间的任何差异

decimal
存储差异,但是,如果您仍然关心精确的十进制数字,则更合适

另一方面,听起来你在错误的地方做比较:

我之所以尝试这样做,是因为我有一些自定义文本框,它们必须使用与实际显示的值不同的值,并且当尝试在该文本框中输入您自己的值时,当您尝试在小数位中输入零时,该文本框将忽略您的文本

不要比较字符串值-解析值(到
十进制
双精度
),然后比较解析后的值


这还可以防止前导零出现问题,其中“0123”和“123”表示相同的值,但是不同的字符串。

man,你太快了;)是否在stackoverflow上发布您的全职工作?+1表示最后一条信息。不知道十进制数知道位数之间的差异suplied@animaonline他的全职工作甚至不涉及C#谢谢你的回答。。我并没有试图比较这些值,我只是试图将这些值写入文本框。不过,这是非常有用的见解!(编辑:改为十进制已解决问题)伙计,你跑得真快;)是否在stackoverflow上发布您的全职工作?+1表示最后一条信息。不知道十进制数知道位数之间的差异suplied@animaonline他的全职工作甚至不涉及C#谢谢你的回答。。我并没有试图比较这些值,我只是试图将这些值写入文本框。不过,这是非常有用的见解!(编辑:更改为十进制已解决问题)