C#Double - ToString格式化显示以美分显示的值,不显示小数

R J*_*R J 2 .net c# double tostring

我有一种情况,我需要显示一个舍入到两个小数位的double值,但显示没有小数.在某些情况下我会想要使用相同的代码并以不同的方式显示double值,所以我希望通过传入字符串格式模式来处理这个问题.

例如,double值可能是:11367.2232我希望值为:1136722

另一个例子,值可能是344576.3457我想要的值是34457635

第三个例子,值可能是546788我希望值为54678800

所以,我想做点什么:

String.Format("{PATTERN}", dblCurrency);
Run Code Online (Sandbox Code Playgroud)

是否有任何格式化模式可以舍入到2位小数并删除小数显示?

LBu*_*kin 18

首先,有(非常)少数例外,用于操纵货币值通常是个坏主意double.你应该真的decimal用来代表这样的金额.

其次,舍入和显示格式是单独的操作,您的代码应单独表达.string.Format()不会提供同时执行这两种操作的单一格式掩码,但您可以轻松实现所需的内容:

decimal amount = 11367.3456m
String.Format( "{0:0}", amount*100 );
Run Code Online (Sandbox Code Playgroud)

这将输出:

1136735
Run Code Online (Sandbox Code Playgroud)

D0格式说明发射数字值而没有任何分离器和与小数点后没有数字.您也可以使用ToString(),但我认为格式说明符更清楚地表达了意图.