2013-04-10 117 views
1

有人可以給我一些關於如何在浮點數(MASM)中將浮點舍入到最接近的.001的提示嗎?我有2個整數。我需要顯示商作爲浮點數(num_1/num_2)。我得到了浮點運算部分的工作,但我無法弄清楚如何四捨五入的結果。任何建議,非常感謝!如何將浮點四捨五入到最接近的.001

;calculate the quotient as a floating-point number 
    fild num_1 
    fidiv num_2 
    roundps 

    ;display the quotient as a floating-point number   
    call WriteFloat 
    call CrLf 
+0

爲了說明問題,您正在談論以10爲底的數字,0.001,基數爲2的浮點數,是的? – 2013-04-10 21:04:33

回答

1

您可以將數字縮放1000,然後縮小然後縮小。

1

乘以1000(fmul),舍入爲整數(frndint),然後除以1000(fdiv)。

roundps指令需要SSE4.1和僅與SSE或AVX寄存器,而不是FPU的寄存器工作。