C# 将int格式化为带小数的字符串
我正在尝试使用C# 将int格式化为带小数的字符串,c#,C#,我正在尝试使用string.format方法格式化字符串,以从int数据类型生成固定的十进制字符串 我尝试了以下代码: sOutputString = string.Format( "Days:{0:D1} Hours:{1:D1} Minutes:{2:D1} Seconds:{3:D1} Miliseconds:{4:D1}", objTimeCalculate.Days, objTimeCalculate.Hours, objTimeCalculate.Minutes
string.format
方法格式化字符串,以从int
数据类型生成固定的十进制字符串
我尝试了以下代码:
sOutputString = string.Format(
"Days:{0:D1} Hours:{1:D1} Minutes:{2:D1} Seconds:{3:D1} Miliseconds:{4:D1}",
objTimeCalculate.Days,
objTimeCalculate.Hours,
objTimeCalculate.Minutes,
objTimeCalculate.Seconds,
objTimeCalculate.Miliseconds);
属性天
、小时
、分钟
、秒
的值为int
数据类型,并使用指定的D
格式格式化。但是,我需要字符串中生成的decimal
值
输出应为:
sOutputString=Days:double\u值小时:double\u值分钟:double\u值秒:double\u值毫秒:整数值
因为属性天数可能超出整数数据类型的范围。您正在寻找说明符:
sOutputString = string.Format(
"Days:{0:F2} Hours:{1:F2} Minutes:{2:F2} Seconds:{3:F2} Miliseconds:{4:F2}",
objTimeCalculate.Days,
objTimeCalculate.Hours,
objTimeCalculate.Minutes,
objTimeCalculate.Seconds,
objTimeCalculate.Miliseconds);
您正在查找F说明符:
sOutputString = string.Format(
"Days:{0:F2} Hours:{1:F2} Minutes:{2:F2} Seconds:{3:F2} Miliseconds:{4:F2}",
objTimeCalculate.Days,
objTimeCalculate.Hours,
objTimeCalculate.Minutes,
objTimeCalculate.Seconds,
objTimeCalculate.Miliseconds);
假设
objTimeCalculate
是TimeSpan
所有这些变量都是int
。因此,它们没有十进制值
但是,我们可以使用格式字符串F1
,它将返回一个固定的十进制值,但是它将始终是0
例如:
var objTimeCalculate =(DateTime.Now - DateTime.UtcNow);
var sOutputString = string.Format(
"Days:{0:F1} Hours:{1:F1} Minutes:{2:F1} Seconds:{3:F1} Miliseconds:{4:F1}",
objTimeCalculate.Days,
objTimeCalculate.Hours,
objTimeCalculate.Minutes,
objTimeCalculate.Seconds,
objTimeCalculate.Milliseconds);
结果:
Days:0.0 Hours:9.0 Minutes:29.0 Seconds:59.0 Miliseconds:996.0
你可以咨询更多细节
“F”或“F”不动点
结果:带可选负号的整数和十进制数字。
支持:所有数字类型。精度说明符:数量
十进制数字。默认精度说明符:由定义
NumberFormatInfo.NumberDecimalDigits
假设
objTimeCalculate
是TimeSpan
所有这些变量都是int
。因此,它们没有十进制值
但是,我们可以使用格式字符串F1
,它将返回一个固定的十进制值,但是它将始终是0
例如:
var objTimeCalculate =(DateTime.Now - DateTime.UtcNow);
var sOutputString = string.Format(
"Days:{0:F1} Hours:{1:F1} Minutes:{2:F1} Seconds:{3:F1} Miliseconds:{4:F1}",
objTimeCalculate.Days,
objTimeCalculate.Hours,
objTimeCalculate.Minutes,
objTimeCalculate.Seconds,
objTimeCalculate.Milliseconds);
结果:
Days:0.0 Hours:9.0 Minutes:29.0 Seconds:59.0 Miliseconds:996.0
你可以咨询更多细节
“F”或“F”不动点
结果:带可选负号的整数和十进制数字。
支持:所有数字类型。精度说明符:数量
十进制数字。默认精度说明符:由定义
NumberFormatInfo.NumberDecimalDigits
请包括您的预期输出。正如@Nico所述。请举例说明输入的数据类型以及您最终期望的sOutputString的外观。请使用F或G格式。您能解释一下如何使用F或G吗@PawełDylSee这里有不同的格式:请包括您的预期输出。正如@Nico所说的。请举例说明输入的数据类型以及您最终期望的sOutputString的外观。请使用F或G格式。您能解释一下如何使用F或G吗@Pawełdylse这里有不同的格式:
D
说明符仅用于int
类型,没有指数值。如果必须显示十进制值,则应坚持使用F
。尝试在int
以外的任何对象上使用D
都会导致格式异常。如果使用F,我可以获得准确的输出,但对于非常大的数字,输出效果并不理想。如果查看标准格式字符串,您将看到还有许多其他选项。如果要为大数添加逗号分隔符,请使用N
格式提供程序。D
说明符仅用于int
类型,没有指数值。如果必须显示十进制值,则应坚持使用F
。尝试在int
以外的任何对象上使用D
都会导致格式异常。如果使用F,我可以获得准确的输出,但对于非常大的数字,输出效果并不理想。如果查看标准格式字符串,您将看到还有许多其他选项。如果要为大数字添加逗号分隔符,请使用N
格式提供程序。