簡體   English   中英

將int格式化為帶小數的字符串

[英]Format int to string with decimals

我正在嘗試使用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);

屬性DaysHoursMinutesSecondsint數據類型,並使用指定的D格式進行格式化。 但是我需要在字符串中產生decimal值。

輸出應為:

sOutputString = Days : double_value Hours : double_value Minutes : double_value Seconds : double_value Miliseconds : integer_value

由於屬性日可能超出整數數據類型范圍。

假設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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM