c# - 如何从小数部分取零?

标签 c#

我有一个将数字转换为单词的场景,我已经成功了,但我发现了一种情况它不起作用。如果我输入数字“10”,它会显示“”。此外,“10.2”将显示“十点二”。但是,如果我输入“10.0”,它不会显示为“十点零”。

为了将整数部分与小数部分分开,我通常用'.'来分割数字,但是如果我输入像“10.0”这样的数字,字符串数组将只包含“10”而不包含“0

我完成的吐痰部分如下:

string[] number = Convert.ToString(context.NumberToTranslate).Split('.');

最佳答案

要测试您的数字是否为不带小数点的整数,您可以尝试使用

解析它
int tmpInt;
bool isInteger = Int32.TryParse(num.ToString(), out tmpInt);

如果它是一个整数,只需将数字转换为您的字符串表示形式,否则无论使用自定义格式字符串如何,都保留小数点后的数字:

 string number = num.ToString("#.0");

如果您的数字小于 1,也会出现同样的问题,因此您也可以对小数点前的数字使用零占位符:

 string number = num.ToString("#0.0");

另见 Custom Numeric Format Strings

关于c# - 如何从小数部分取零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6785525/

相关文章:

c# - 将 Oracle Sql 查询中的 sql 变量值返回给 .NET 代码

c# - Excel 加载项 (C#) - 如何处理用户设置?

c# - 关于单元测试和犀牛模拟的一些问题

c# - Mono C# 奇怪的控制台颜色

c# - 动态 Linq 在 GroupBy 之后选择组中的第一个

c# - 有多个工具提示/弹出窗口整齐地堆叠在 Windows 系统托盘区域,类似于 Messenger/反病毒通知

c# - 仅更改列表框的 DataValueField?

c# - 为什么我在调用 RoleEnvironment.GetConfigurationSettingValue ("MYKEY"时收到 SEHException?

c# - 仅在有效登录时访问页面

c# - 使用 C# 读取 Soap 消息