C#使用指定格式将十进制转换为字符串

前端之家收集整理的这篇文章主要介绍了C#使用指定格式将十进制转换为字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要将十进制数字a转换为字符串b,如下所示:

> b必须是避风港’.’字符.例如:

> a = 12 – > b =“12.0”
> a = 1.2 – > b =“1.2”
> a = 1.234 – > b =“1.234”

我怎么能用1命令呢?

> b必须完全是10个字符.例如:

> a = 101 – > b =“101.000000”
> a = 1.234 – > b =“1.23400000”
> a = 1.234567891 – > b =“1.23456789”

(与1相同的问题)

解决方法

decimal a = 12;
var b = a.ToString("N1"); // 12.0

a = 1.2m;
b = a.ToString(); // 1.2

a = 101m;
b = a.ToString("N10"); // 101.0000000000

a = 1.234m;
b = a.ToString("N10"); // 1.2340000000

对于问题的第二部分 – 您希望总长度为10,那么:

decimal a = 1.234567891m;
int numberOfDigits = ((int)a).ToString().Length;
var b = a.ToString($"N{9 - numberOfDigits}"); //1.23456789

//Or before C# 6.0
var b = a.ToString("N" + (9 - numberOfDigits)); //1.23456789

基本上((int)数字).ToString().Length给出之前的数字位数. (转换为int将删除分数),然后从数字后面的位数减少. (小数点本身也是-1)

原文链接:https://www.f2er.com/csharp/91659.html

猜你在找的C#相关文章