簡體   English   中英

在C#中將double轉換為字符串分數

[英]Convert double to string fraction in C#

有沒有一種簡單的方法可以將C#中的說1.3333333轉換為說1 + 1/3? 只有小數而不是整數的代碼。 我應該在使用分數之前將其拔出嗎?

我認為這很難。 兩個原因:

  1. 小數始終可以轉換為十進制數字,但是十進制有時會丟失數字,因此無法進行精確的往返。 例如:哪個數字可以轉換為1/3 ?:

    • 0.33?
    • 0.333333?
    • 0.333333333333333333333333333333333333333333333333333333333333333333?
  2. 每個十進制數字都可以轉換為整數。 例如:0.25可以轉換為:

    • 1/4
    • 2/8
    • 25/100

但是,如果您願意使用一些不太精確的解決方案,請嘗試: 將小數簡化為分數的算法

您應將最大分母設置為例如1 000 000(一個milione)並嘗試縮短。 您必須意識到可能會失去精度

例如您有1,450

  1. 您用分母乘以分數和倍數,即450 000/1 000 000
  2. 然后您找到“最大公約數”
  3. 用上一點除以除數
  4. 最終你得到分數9/20

暫無
暫無

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

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