繁体   English   中英

C#十进制格式查询

[英]C# Decimal Formatting Query

我正在尝试格式化一个十进制格式,以便将其显示为:

14.5应该显示为“ 14.50” 14.50应该显示为“ 14.50” 14.05应该显示为“ 14.05” 14.00应该显示为“ 14”

是否可以使用单个字符串格式,即不使用条件格式?

我已经尝试过“ 0。##”(不满足第一个示例)和“ 0.00”(不满足最后一个示例)。

谢谢。

是。 您可以使用“ G”格式说明符。 有关示例,请参见String.Format的文档。

例如:

decimal value = 14.05m;
string result = String.Format("{0:G}", value); // "14.05"

value = 14m;
result = String.Format("{0:G}", value); // "14"

您可以使用以下格式:FormatNumber(VariableToBeFormatted,2).Replace(“。00”,String.Empty)

我认为如果没有某种条件格式设置,您将无法做到这一点,因为您希望格式设置可以在不同情况下执行不同的操作。

如果您选择14.5而不是14.50,那么可以使用0。##语法,但是我想不出一种解决方法。

按照Reed的回答,然后添加检查:

resultArray = result.Split('.');

if (resultArray.Length > 1 && resultArray[1].Length != 2)
    result = String.Format("{0.00}", value);

不完全优雅,但可以为您带来想要的结果。

这是假定该人说不适用于14.5的评论是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM