> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 精度與捨入

> 價格與數量如何以整數表示，以及每個欄位為什麼按現在這個方向捨入。

結算路徑上的每一個數都是整數。任何能影響餘額的地方都沒有浮點數，因為兩台機器計算同一個浮點運算式，可能在最後一位上不一致，而在共識執行路徑上，最後一位不一致就是一次分叉。

因此，價格與數量以固定的整數單位保存，你輸入的值與協議儲存的值之間的每一次轉換，都有一個規定好的捨入方向。

<h2 id="tick-size-and-lot-size">
  最小價格變動單位與最小數量變動單位
</h2>

| 約束                      | 作用對象 | 效果            |
| ----------------------- | ---- | ------------- |
| **最小價格變動單位**（tick size） | 價格   | 價格必須是這個單位的整數倍 |
| **最小數量變動單位**（lot size）  | 數量   | 數量必須是這個單位的整數倍 |

兩者都按市場設定，公布在[合約規格](/zh-Hant/trading/markets)中。不符合的訂單會直接拒絕，不會悄悄調整：交易場所若偷偷替你把價格捨入，等於沒告訴你就改了你的訂單。

<h2 id="rounding-is-a-risk-decision">
  捨入是一個風險決策
</h2>

捨入方向不是排版偏好。**每一個捨入選擇都把一小部分誤差分配給了某個人**，而規則是一致的：誤差會製造風險的地方，保守地捨入；誤差會構成系統性轉移的地方，公平地捨入。

<h3 id="rounded-conservatively-against-the-account">
  朝對帳戶不利的方向保守捨入
</h3>

| 欄位        | 方向        | 原因             |
| --------- | --------- | -------------- |
| 起始保證金     | **無條件進位** | 低估保證金就是低估風險    |
| 維持保證金     | **無條件進位** | 決定強平門檻         |
| 可用擔保品     | **無條件捨去** | 防止開出略超出覆蓋能力的部位 |
| 可提領餘額     | **無條件捨去** | 防止提走超出可用範圍的部分  |
| 最大可買或可賣數量 | **無條件捨去** | 防止超出真實承載能力     |

規律是：任何回答**這個帳戶還能承擔多少**的量，都朝對帳戶不利的方向捨入。保證金要求被無條件捨去一點零頭，在交易場所的每一個部位上重複下去，就是對風險的系統性低估：單次很小，而且恰好是那種只在關鍵時刻才暴露出來的誤差。

<h3 id="rounded-fairly">
  公平地捨入
</h3>

| 欄位       | 方向       | 原因            |
| -------- | -------- | ------------- |
| 手續費與資金費  | **四捨五入** | 系統性偏向交易場所站不住腳 |
| 手續費回饋與獎勵 | **四捨五入** | 同樣的道理，方向相反    |
| 已實現損益    | **四捨五入** | 結算不該偏向任何一邊    |
| 顯示的損益    | **四捨五入** | 與結算保持一致       |

在這些欄位上，固定一個方向就成了轉移，不是安全邊際。手續費總是無條件進位，等於隱性加價；總是無條件捨去，等於補貼。四捨五入讓任何一邊都不會系統性佔便宜。

**一個例外：** 手續費若會捨入成零，改為**無條件進位**。完全不付手續費的交易，比付出最小可表示金額的交易更糟。

<Note>
  這就是為什麼你看到的部位價值、保證金使用和損益，可能與你自己算出來的結果差一個最小單位。這個差不是錯誤，而是那個欄位的捨入規則被刻意執行出來的結果。
</Note>

<h2 id="what-this-means-in-practice">
  實務上意味著什麼
</h2>

* **提交前先對齊 tick size 與 lot size。** 價格不符合最小價格變動單位，是最常見也最容易避免的拒單原因。
* **不要按最後一個單位下滿。** 可用擔保品無條件捨去、保證金要求無條件進位，所以訂單數量若剛好按可用餘額算到底，可能會被拒絕。留一點餘裕。
* **預期存在細微的顯示差異。** 要精確重現一個數值，必須對同樣的整數輸入套用同樣的捨入規則，不能用浮點數重算一遍。
* **從整數重建。** 你若在程式裡對帳，就用協議的單位計算。轉成十進位型別再轉回來，會把整數本來就是要消除的那種歧義又引回來。

<h2 id="where-to-go-next">
  後續閱讀
</h2>

<CardGroup cols={2}>
  <Card title="市場" href="/zh-Hant/trading/markets">
    各市場的最小價格變動單位、最小數量變動單位與合約規格。
  </Card>

  <Card title="IntentionKernel" href="/zh-Hant/protocol/architecture/kernel">
    為什麼定點數運算是共識層面的硬性要求。
  </Card>

  <Card title="保證金模式" href="/zh-Hant/trading/margin-modes">
    保守捨入在你的可用餘額上體現在哪裡。
  </Card>

  <Card title="手續費" href="/zh-Hant/programs/fees">
    費用如何計算與捨入。
  </Card>
</CardGroup>
