如果我有一個數字 7.14285 并且我想找到其中的位數,我該怎么做才能不將小數點也算作“數字”?
例如,我這樣做了:
n = 7.14285
digits = len(str(n))
print(digits)
但它會向我回傳“7”作為答案。
如果我做:
n = 714285
digits = len(str(n))
print(digits)
然后它回傳“6”給我作為答案。
那么,如何計算這個十進制數中的位數并使其等于 6 而不是 7,同時保持 n = 7.14285?
uj5u.com熱心網友回復:
.isdigitTrue如果給定字符是數字,將回傳。True也像整數一樣作業,1所以你可以總結它
sum(d.isdigit() for d in str(n))
但小心點!7.14285實際上是二進制浮點數的十進制近似值。給定更高的精度,它更接近7.1428500000000001435296326235402375459671020507812500. 如果此值n以字串形式開始,請保持這種狀態。否則請記住,它str(some_float)給出了數字的近似值。
uj5u.com熱心網友回復:
一種方法是使用點拆分字串并計算生成的串列的第二個元素。
n = 7.14285
digits = str(n).split(".")
print(len(digits[1])) # The Output is 5
uj5u.com熱心網友回復:
我們只需要洗掉那個'。',這里我們有這樣做的代碼:
n = 7.14285
digits = len(str(n).replace(".",""))
print(digits)
.replace(".","")之后將str(n)洗掉小數點。
uj5u.com熱心網友回復:
如果你確定你需要浮點數的長度,那么你可以從給定的浮點數的長度中減去 1。
len(str(n))-1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/511293.html
