小编Dor*_*een的帖子

当需要显示时,十进制数据类型正在剥离尾随零

我正在研究的一个Web应用程序(另一个开发者编写它)有一个十进制变量,它在小数点后减去两个零.如果它们包含数字> 0或其组合,则不会丢弃尾随的2位数字.该值来自文本文件.

示例文本值为: 261.00

十进制变量示例(TotalDue)是: 261

在调试期间,当我将鼠标悬停在"TotalDue"上时(在下面的示例代码中),该值显示为261,当我展开调试器时,它显示为"261M":

decimal TotalDue = Convert.ToDecimal(InputRow.Substring(260, 12));
Run Code Online (Sandbox Code Playgroud)

我已经尝试将其作为一个字符串(但最初它仍然显示为"261"而不是261.00),然后以各种方式将其转换如下.没有什么工作!

string TotalDue = InputRow.Substring(260, 12);

strTotalDue = String.Format("{0:F2}", TotalDue);

strTotalDue = String.Format("{0:N2}", TotalDue);

strTotalDue = String.Format(TotalDue, "0.00");

strTotalDue = TotalDue.ToString("G29");  

strTotalDue = String.Format("{0:0.00}", TotalDue);

strTotalDue = TotalDue.ToString("N2");//used this one with decimal data type
Run Code Online (Sandbox Code Playgroud)

我错过了什么?文本文件数据源自何处?它始于Access数据库.

更新:今天(12/1/15)我意识到我从未标记过答案,因为我最终废弃原始代码并用C#.net重写它.我将Cole Campbell的答案标记为正确,因为他的评论("以一种为其提供关于输入精度的足够数据的方式构造十进制.")促使我提出我操作的解决方案.传入的数据.我在一个方法中这样做 - 只显示下面重要的部分(AmtDue).提醒传入的数据格式为"261.00"(例如AmtDue = 261.00):

string AmtDue = Convert.ToString(AmountDue).Replace(".", "");           
string finalstring =  ("0000000000" + AmtDue).Substring(AmtDue.Length);
Run Code Online (Sandbox Code Playgroud)

c# string types decimal

10
推荐指数
3
解决办法
2万
查看次数

如何永久关闭反汇编中的调试?

在c#和VS2008中调试控制台应用程序时,反汇编窗口不受欢迎.

我正在使用F11逐行调试我的代码.我有断点设置并且它开始好然后在打开数据库连接的方法中调用后,调试器打开反汇编窗口并保持在那里.我右键单击了反汇编选项卡并选择了隐藏,但是一旦我按下F11,窗口就会再次弹出.

如何永久关闭反汇编中的调试?

debugging disassembly visual-studio-2008

5
推荐指数
1
解决办法
4661
查看次数