将int格式化为带小数的字符串
本文关键字:小数 字符串 int 格式化 | 更新日期: 2023-09-27 18:02:42
我正在尝试使用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);
属性"Days
"、"Hours
"、"Minutes
"、"Seconds
"的值为"int
"数据类型,使用指定的"D
"格式格式化。但是,我需要在字符串中生成decimal
值。
输出应该是:
sOutputString = Days : double_value Hours : double_value Minutes : double_value Seconds : double_value Miliseconds : integer_value
由于属性days可以超出整数数据类型的范围
既然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 .
定点("F")格式说明符。
您正在查找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);