sql 除法使用 / 運(yùn)算符,除數(shù)為整數(shù)時返回整數(shù)舍棄小數(shù),為小數(shù)時返回浮點保留小數(shù)位。除以 0 會報錯,符號不同結(jié)果為負(fù)。可使用 round() 函數(shù)保留指定小數(shù)位數(shù),轉(zhuǎn)換數(shù)字為浮點型可避免精度損失。
SQL 中除法
如何進(jìn)行除法?
SQL 中使用 / 運(yùn)算符進(jìn)行除法。
除數(shù)為整數(shù)時
如果除數(shù)為整數(shù),SQL 將返回一個整數(shù)結(jié)果,小數(shù)部分將被舍棄。例如:
<code class="sql">SELECT 10 / 3; -- 返回 3</code>
登錄后復(fù)制
除數(shù)為小數(shù)時
如果除數(shù)為小數(shù),SQL 將返回一個浮點結(jié)果,保留小數(shù)位。例如:
<code class="sql">SELECT 10 / 3.5; -- 返回 2.857142857142857</code>
登錄后復(fù)制
特殊情況
除以 0:除以 0 會返回一個錯誤。
結(jié)果為負(fù):如果被除數(shù)和除數(shù)的符號不同,結(jié)果將為負(fù)。
使用 ROUND() 函數(shù)
要保留特定位數(shù)的小數(shù),可以使用 ROUND() 函數(shù)。例如:
<code class="sql">SELECT ROUND(10 / 3.5, 2); -- 返回 2.86</code>
登錄后復(fù)制
避免精度損失
為了避免精度損失,建議將數(shù)字轉(zhuǎn)換為浮點型,然后再進(jìn)行除法。例如:
<code class="sql">SELECT CAST(10 AS FLOAT) / CAST(3.5 AS FLOAT); -- 返回 2.857142857142857</code>
登錄后復(fù)制






