期望結(jié)果是3.6,但是實際上是3.0,請問是什么問題?
您好我感覺是因為360是整形,100也是整形,兩個整形的運算還是整形,所以(360/100)相當于3
所以打印出來是3.0
建議將第二行替換成 step=(360.0/100); 再試一試
您好,麻煩說一下你用的是我司哪款MCU,這邊可以幫你測試一下
您好,首先你用的兩個整型數(shù)相除;當整型除以整型時,得到的仍然是整型,只是直接去掉商的小數(shù)部分,然后只取整數(shù)部分,不考慮四舍五入的問題。故而360/100只會直接保存整數(shù)部分即3
其次,您用的是float單精度類型(表示帶有小數(shù)的實數(shù)時有不連續(xù)和不精確的特點),是無法得到3.6這個數(shù)值的,如果您改成360.0/100,這樣得到的數(shù)值會是3.59
像3.6這樣的數(shù)字使用float類型是沒辦法精確存儲的, float所能表示的小數(shù)是跳躍的,這些小數(shù)也必須能寫成2的n次冪相加才可以,比如0.5、0.25、0.125…以及這些數(shù)字的和。
如果您想得到精確的數(shù)值,建議將step的類型改成double,將算式改成360.0/100即可。